Rechercher : dans
Par :

Syntaxe de la fonction ereg()

Dernière réponse le 9 aoû 2006 à 12:51:23 tonguim, le 8 aoû 2006 à 22:34:38 
 Signaler ce message aux modérateurs

Bonjour,

quelqu'un peut il m'expliquer cette syntaxe:

ereg('^.+@.+\\..+$', $_POST['txtemail1'])
? Je voudrais surtout comprendre cette partie
^.+@.+\\..+$
Merci.

Meilleures réponses pour « syntaxe de la fonction ereg() » dans :
PHP - Mail et fonctions réseau Voir PHP étant un langage consacré au Web, il possède bien évidemment des fonctions lui permettant de communiquer avec le "monde extérieur" à l'aide de fonctions standards. Le service le plus utilisé sur Internet étant la messagerie électronique, il est...
[PHP] Fonction mail() VoirLa fonction mail() est bloquée chez certains des hébergeurs gratuits pour des raisons de sécurité (afin d'éviter le spam notamment), l'adresse ip de la machine qui a demandé le script sera alors indiquée dans le header 'X-MM-Mail-From-IP'. renseignez...
Différence entre dates avec la fonction DATEDIF VoirLa fonction DATEDIF n'est pas documentée dans Excel, mais par contre sur CCM vous pouvez trouver les possibilités offertes. En voici un résumé.   La syntaxe =DATEDIF(date début;date fin;type de calcul) date début : doit être une valeur date...
Parse error: syntax error, unexpected $end VoirLorsque l'on programme en Php, on se retrouve inévitablement un jour devant ce genre d'erreur: Parse error: syntax error, unexpected $end in Command line code on line 1 En français, ça signifie grossièrement: "Erreur d'analyse du code: il y a une...
Télécharger Notepad2 VoirNotepad2 est un bloc-note sans installation libre possédant des fonctionnalités avancées de coloration syntaxique. Fonctionnalités Coloration syntaxique pour les langages suivants : HTML, XML, PHP, ASP (JScript, VBS), CSS, JavaScript, VBScript,...
Javascript - Les fonctions VoirLa notion de fonction On appelle fonction un sous-programme qui permet d'effectuer un ensemble d'instructions par simple appel de la fonction dans le corps du programme principal. Cette notion de sous-programme est généralement appelée fonction...
PHP - Les fonctions VoirLa notion de fonction On appelle fonction un sous-programme qui permet d'effectuer un ensemble d'instructions par simple appel de la fonction dans le corps du programme principal. Les fonctions permettent d'exécuter dans plusieurs parties du...
VBScript - Les fonctions de chaînes de caractères VoirLes fonctions de chaînes de caractères Fonction Description Filter(InputStrings, Value[, Include[, Compare]]) Sélectionne des chaînes de caractères parmi un tableau de chaînes...

1

mamiemando, le 9 aoû 2006 à 01:40:54

^ = début de l'expression
.+= au moins un caractère quelconque
@ = le caractère arrobase
.+ = au moins un caractère quelconque
\\. = le caractère '.'
.+ = au moins un caractère quelconque
$ = fin de l'expression

Conclusion : cette expression catche une expression du genre xxxxx@xxxxxxxxx.xx ... une adresse mail quoi ;-)

Le résultat est mis dans la variable POST txtemail

Bonne chance

Répondre à mamiemando

2

tonguim, le 9 aoû 2006 à 12:00:46

Merci mamiemando pour ton explication.

Le résultat est mis dans la variable POST txtemail ...
Ce que je voudrais plutôt c'est afficher un message d'erreur si l'adresse email1 est incorrecte (abscence du <b>@</b> et du <b>.</b>). Voici mon test:
if(!ereg('^.+@.+\\..+$', $_POST['txtemail1'])) 
{echo "L'adresse email1 est incorrecte";}


Le champ txtemail est le champ qui contient l'adresse email qui a été saisie.

Le problème est que mon test ne fonctionne pas: il m'affiche l'erreur que l'adresse soit bonne ou pas. Comment corriger ce problème? Merci

Répondre à tonguim

3

 lami20j, le 9 aoû 2006 à 12:51:23
  • +1

Salut,

il y a une erreur dans l'interpretation de la regex

\\. = le caractère '.'

en fait le 1er \ permet de voir le 2ème en tant que caractère littéral.

En bref pour faire correspondre un métacaractère dans le sens littéral il faut l'echapper avec un antislash.

\\. veut dire un antislash suit de n'importe quel caractère

Donc \a correspond en ce cas. Mais rT ne correspond pas.

Dans une adresse electronique on ne vois pas souvent le caractère antislash(enfin je n'ai jamais vu).

Voilà un test sur le site http://www.roblocher.com/technotes/regexp.aspx

1. pour /^.+@.+\\..+$/ je teste tonguim@ya\hoo.fr - résultat ok

2. pour /^.+@.+\\..+$/ je teste tonguim@yahoo.fr - résultat echec

3. pour /^.+@.+\..+$/ je teste tonguim@ya\hoo.fr - résultat ok

4. pour /^.+@.+\..+$/ je teste tonguim@yahoo.fr - résultat ok

Dans le 3ème cas c'est ok à cause de .+ donc \ est reconnu

Il faut comprendre les regex avant de commencer.

Voilà une regex un peu plus précise pour une adresse electronique

/^.+@[^\(\);:,<>\\]+\.[a-zA-Z]{2,4}/

Et ce n'est pas sûr que ça va toujours marcher. Ce n'est pas facile d'imaginer tout les cas

lami20j

Répondre à lami20j