PHP formulaire saisie d'email

Résolu
saadainese Messages postés 49 Statut Membre -  
Groarh Messages postés 706 Statut Membre -
Bonjour,
je voudrais m'assurer que le champs email saisie par un utilisateur a son enregistrement sur mon site dans le formulaire PHP correspant effectivement au format email,

Merci

28 réponses

saadainese Messages postés 49 Statut Membre 2
 
ou ?
0
saadainese Messages postés 49 Statut Membre 2
 
je ne sais pas comment faire pour le check box ?
0
Dalida Messages postés 7114 Statut Contributeur 923
 
function validation()
{
var flag = false;
var email = document.formulaire_inscription.email.value;
var verif = /^[a-zA-Z0-9_-]+@[a-zA-Z0-9-]{2,}[.][a-zA-Z]{2,3}$/
if (verif.exec(email) == null)
{
alert("Votre email est incorrecte");
}
else
flag = true;
}
if (!document.formulaire_inscription.checkbox.checked)
{
alert("il faut cocher !");
flag = flag && false;
}
else
flag = flag && true;
}
return flag; 
}

évidemment, j'ai pas testé, hein !
0
Dalida Messages postés 7114 Statut Contributeur 923
 
y a mieux !!!
0
saadainese Messages postés 49 Statut Membre 2
 
merci,

ca marche avec des petites modifications de quelque accollades, merci pour ton aide, ca m'a vraiment epargné beaucoup de temps
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Dalida Messages postés 7114 Statut Contributeur 923
 
you're welcome, bon courage pour la suite !
-;o)
0
saadainese Messages postés 49 Statut Membre 2
 
je sais pas si vous serrez toujours la pour repondre a des questions, j'aime bien votre maniere d'expliquer, c simple et rapide, est ce que je pourrais vous posez d'autres questions ?
0
Dalida Messages postés 7114 Statut Contributeur 923 > saadainese Messages postés 49 Statut Membre
 
j'aime bien votre maniere d'expliquer, c simple et rapide
merci du compliment !

est ce que je pourrais vous posez d'autres questions ?
il suffit d'ouvrir un nouveau fil de discussion dans le forum et si tu veux être sûr que je le lise, envoie-moi un MP pour me signaler la discussion.
0
saadainese Messages postés 49 Statut Membre 2
 
ok ok :)
0
Groarh Messages postés 706 Statut Membre 185
 
Bon je vois que j'arrive après les hostilités mais, en relisant le fil, je m'aperçois que la validation du côté du serveur est passée à la trappe. Pourtant, c'est la plus importante, car un utilisateur un peu bidouilleur, ou simplement qui a désactivé JavaScript (c'est courant sur les postes en entreprises), contourne ça facilement …

La fonction filter_var a été mentionnée, mais ce n'est pas la meilleure solution pour l'instant, car elle ne marche pas sur des versions de Php antérieures à la 5.2.0.

Pour utiliser les regexp sous Php, il y a au moins deux solutions : ereg et preg_match, qui utilisent une syntaxe d'expressions rationnelles différente (respectivement POSIX et PCRE). J'ai tendance à préférer la seconde, je la trouve plus « officielle », mais c'est mon humble avis.
Cela dit, pour une simple vérification de mail, la première est plus facile d'emploi :
<?php
### Test regexp mail ###
$address = strip_tags(@$_POST['address']); // sécurité anti-XSS
?>
<html>
<head>
	<meta http-equiv="content-type" content="text/html; charset=utf-8" />
	<title>Test regexp mail</title>
</head>
<body>
<form action="" method="post">
<p>
	<label for="address">Entrez une adresse e-mail valide :</label>
	<input id="address" name="address" type="text" value="<?php
		echo $address ?>" />
	<input type="submit" />
</p>

<?php if (ereg("^[[:alnum:]_.-]+@[[:alnum:]_.-]+\.[:alpha:]+$", $address))
	echo "<p>L’adresse $address est valide !</p>\n";
else
	echo "<p>Bah non, ça marche pas …</p>\n";
?>

</form>
</body>
</html>


Pour alléger l'exemple, j'ai volontairement fait du HTML non valide, j'espère que vous me pardonnerez :P

Petites explications pour la syntaxe POSIX :
^ le caractère de début de chaîne, et $ celui de fin de chaîne : je m'assure que l'utilisateur n'a rien entré d'autre que son adresse ;
[[:alnum:]_.-]+ → je n'autorise que les lettres, chiffres, points, tirets et soulignés
@ → le @ du milieu
\. → le caractère point, échappé avec \ pour qu'il soit traité comme un banal point
et enfin après le point, que des lettres : ça correspond au .com, .fr ou autre.

J'espère que cet exemple servira beaucoup ^^
;)

NB : cf. la référence officielle de Php pour la fonction ereg.
0
Dalida Messages postés 7114 Statut Contributeur 923
 
La fonction filter_var a été mentionnée, mais ce n'est pas la meilleure solution pour l'instant, car elle ne marche pas sur des versions de Php antérieures à la 5.2.0.
et tu comptes passer à PHP 5.2 en 2050 ?
la plupart des hébergeurs ont migré, non ?
-;o)

j'ai volontairement fait du HTML non valide, j'espère que vous me pardonnerez
ah là, non !!!
-:oD

+ une ressource pour les RegEx
0
Groarh Messages postés 706 Statut Membre 185
 
-- et tu comptes passer à PHP 5.2 en 2050 ?
la plupart des hébergeurs ont migré, non ? --


Free n’a pas migré, et c’est pour moi la meilleure des raisons ! :P

Même en forçant le rendu par Php5 (en ajoutant l’exension .php5 à mes pages), je ne profite hélas que d’une RC de la version 5.1.3 …
0