Page 1 sur 1

problème avec la vérification d'email

Posté : 05 déc. 2007, 15:04
par zab
Bonjour voici mon code
//---contrôle d'une adresse e-mail
function controle_email($email)  {
	if(!preg_match(''^[[:alnum:]]([-_.]?[[:alnum:]])*@ [[:alnum:]]([-_.]?[[:alnum:]])*.([a-z]{2,4})$'',$email))  {
	   return(0);
	}
}
seulement j'ai le message d'erreur suivant qui s'affiche
Parse error: parse error in d:\program files\easyphp1-8\www\livrephp\classe_boutique.php on line 1074 (la ligne 1074 étant if(!preg_match(''^[[:alnum:]]([-_.]?[[:alnum:]])*@ [[:alnum:]]([-_.]?[[:alnum:]])*.([a-z]{2,4})$'',$email)) {
)
est ce que quelqu'un sait d'où vient l'erreur ?
merci

Posté : 05 déc. 2007, 15:09
par Ryle
Moi ! Moi m'sieur ! moi je sais !! ;)

Ton expression régulière est délimitée par deux apostrophes... de chaque côté ! :)
Du coup php ouvre et referme la chaine aussitôt, puis tente d'interpréter ton pattern comme une instruction php à laquelle il ne comprend rien et trouve une nouvelle chaine vide à la fin.

Délimite ta chaine avec des guillemets ou des apostrophes, mais sans les doubler, ça fonctionnera déjà mieux ;)

Posté : 05 déc. 2007, 15:14
par zab
Moi ! Moi m'sieur ! moi je sais !! ;)

Ton expression régulière est délimitée par deux apostrophes... de chaque côté ! :)
Du coup php ouvre et referme la chaine aussitôt, puis tente d'interpréter ton pattern comme une instruction php à laquelle il ne comprend rien et trouve une nouvelle chaine vide à la fin.

Délimite ta chaine avec des guillemets ou des apostrophes, mais sans les doubler, ça fonctionnera déjà mieux ;)
ok merci beaucoup j'essaye ça de suite :D

ben je viens d'essayer et il met toujours qu'il y a erreur
voilà le code comme il est en ce moment
//---contrôle d'une adresse e-mail
function controle_email($email)  {
	if(!preg_match(''^':alnum:'([-_.]?':alnum:')*@ ':alnum:'([-_.]?':alnum:')*.([a-z]{2,4})$'',$email))  {
	   return(0);
	}
}

Posté : 05 déc. 2007, 16:00
par Ryle
bah euh... non .... non seulement tu m'as laissé les doubles apostrophes, mais en plus toutes tes classes on perdu leurs crochets au profits de nouvelles apostrophes... regarde la coloration syntaxique du site, ton masque étant une chaine il devrait être en rouge :)
// au lieu de 
''^[[:alnum:]]([-_.]?[[:alnum:]])*@ [[:alnum:]]([-_.]?[[:alnum:]])*.([a-z]{2,4})$''
// il suffisait de 
 '^[[:alnum:]]([-_.]?[[:alnum:]])*@ [[:alnum:]]([-_.]?[[:alnum:]])*.([a-z]{2,4})$'

Posté : 05 déc. 2007, 16:13
par zab
bah euh... non .... non seulement tu m'as laissé les doubles apostrophes, mais en plus toutes tes classes on perdu leurs crochets au profits de nouvelles apostrophes... regarde la coloration syntaxique du site, ton masque étant une chaine il devrait être en rouge :)
// au lieu de 
''^[[:alnum:]]([-_.]?[[:alnum:]])*@ [[:alnum:]]([-_.]?[[:alnum:]])*.([a-z]{2,4})$''
// il suffisait de 
 '^[[:alnum:]]([-_.]?[[:alnum:]])*@ [[:alnum:]]([-_.]?[[:alnum:]])*.([a-z]{2,4})$'
aie désolée la prochaine fois je ferais plus attention :D

en tout cas ça marche :P