Verifier l' email dans un formulaire

[Résolu/Fermé]
Signaler
Messages postés
245
Date d'inscription
jeudi 27 mai 2004
Statut
Membre
Dernière intervention
18 juillet 2008
-
 Jeangoro -
bijour

je dois vérifier si un email a le bon format dans un formulaire mais je ne sais le faire qu'en php, ce qui n 'est pas très pratique alors il y a deux solutions où je mets un script en javascript ( mais moi le javascript ... )

ou bien je trouve un moyen de rediriger vers une autre page en php !

si quelqu'un a une des deux soluces ce serait sympa !

rucht ( chercheur a temps complet )

22 réponses

Messages postés
6
Date d'inscription
jeudi 17 avril 2008
Statut
Membre
Dernière intervention
22 juin 2008
81
Une fonction simple pour tester la validité d'un adresse mail en javascript... Moins compliquée que celle de Kharma, mais largement suffisante à mon avis...
Voici un code beaucoup plus efficace à mon avis :

function bonmail(mailteste)

{
	var reg = new RegExp('^[a-z0-9]+([_|\.|-]{1}[a-z0-9]+)*@[a-z0-9]+([_|\.|-]{1}[a-z0-9]+)*[\.]{1}[a-z]{2,6}$', 'i');

	if(reg.test(mailteste))
	{
		return(true);
	}
	else
	{
		return(false);
	}
}


Cette fonction javascript teste qu'une adresse mail est syntaxiquement correcte...
44
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 42674 internautes nous ont dit merci ce mois-ci

On peut même faire plus propre :

function bonmail(mailteste)

{
	var reg = new RegExp('^[a-z0-9]+([_|\.|-]{1}[a-z0-9]+)*@[a-z0-9]+([_|\.|-]{1}[a-z0-9]+)*[\.]{1}[a-z]{2,6}$', 'i');

	return(reg.test(mailteste));
}
Bonjour!

J'ai le même problème donc je me permet de poser ma question! :)
Je travaille sur formulaire ou j'essaye de vérifier la validité de l'email qui est entré par l'utilisateur. J'utilise la fonction que tu as écrite ici mais je ne sais pas comment écrire mon "action" dans le input pour qu'il prenne en compte la fonction... Je suis débutante et ce que j'ai essayé de donne pas grand chose :D.

Voici ma ligne en question :

				<tr>
					<td>Email adresse</td>
					<td><input type="text" name="email" maxlength="150" action="checkemail(mailteste)""></td>
				</tr>


Merci de votre aide! :)

bn moi le blem est unpeu diff je voudrai crer un lien ou ya simplement un questionaire le voici :
adresse e mail
pseaudo
code du pseaudo
nombres de jetons souhaiter (pas plus de 50)
et c tt
Stp écris bien pseudo...
Merci pour ton aide.
Messages postés
4059
Date d'inscription
vendredi 19 mars 2004
Statut
Contributeur
Dernière intervention
19 avril 2020
508
Salut,

Voici un exemple de script:

<SCRIPT language="JavaScript">
<!--

function VerifMail()
	{
	a = document.Verif.Mail.value;
	valide1 = false;
	
	for(var j=1;j<(a.length);j++){
		if(a.charAt(j)=='@'){
			if(j<(a.length-4)){
				for(var k=j;k<(a.length-2);k++){
					if(a.charAt(k)=='.') valide1=true;
				}
			}
		}
	}
	if(valide1==false) alert("Veuillez saisir une adresse email valide.");
	return valide1;
	}

//-->
</SCRIPT>

Place ce code dans la balise form:
onsubmit="return VerifMail();"

Remarque:
Dans cet exemple, le formulaire a pour attribut name="Verif" et le champ de saisie de l'adresse e-mail a pour attribut name="Mail"
... à modifier éventuellement :)

A+
Salut,

Comment inserer le code au milieu d'autre vérifications??? SVP

Merci d'avance
ça bien marche sans aucune modification
Chez moi, j'insère p@d et ma page internet plante.
Messages postés
1
Date d'inscription
samedi 27 août 2016
Statut
Membre
Dernière intervention
27 août 2016

il manque une accolade ouverte avant" alert "et b1 sur Ne pas oublier la fermeture d'accolade a la fin
Tout à fait d'accord avec Christophe B...

Celui qui désactive Javascript dans son navigateur est vraiment parano puisqu'aucune fonction n'a de réelles incidences sur la sécurité d'un pc (heureusement d'ailleurs) : pas d'accès au disque en lecteure ou écriture et les scripts ne sont actifs que lorsque la page est chargée ; plus de page, plus de script...

Pour en revenir au sujet, perso j'utilise cette fonction, un peu plus poussée que celles expliquées ici (désolé) :

isEmail = function(emailStr) {
	var checkTLD = 1;
	var knownDomsPat = /^(com|net|org|edu|int|mil|gov|arpa|biz|aero|name|coop|info|pro|museum|fr)$/;
	var emailPat = /^(.+)@(.+)$/;
	var specialChars = "\\(\\)><@,;:\\\\\\\"\\.\\[\\]";
	var validChars = "\[^\\s" + specialChars + "\]";
	var quotedUser = "(\"[^\"]*\")";
	var ipDomainPat = /^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/;
	var atom = validChars + '+';
	var word = "(" + atom + "|" + quotedUser + ")";
	var userPat = new RegExp("^" + word + "(\\." + word + ")*$");
	var domainPat = new RegExp("^" + atom + "(\\." + atom +")*$");
	var matchArray = emailStr.match(emailPat);
	if (matchArray == null) { return false; }
	var user = matchArray[1];
	var domain = matchArray[2];
	for (i=0; i<user.length; i++) {
		if (user.charCodeAt(i) > 127) { return false; }
	}
	for (i=0; i<domain.length; i++) {
		if (domain.charCodeAt(i) > 127) { return false; }
	}
	if (user.match(userPat) == null) { return false; }
	var IPArray=domain.match(ipDomainPat);
	if (IPArray != null) {
		for (var i=1; i<=4; i++) {
			if (IPArray[i] > 255) { return false; }
		}
		return true;
	}
	var atomPat = new RegExp("^" + atom + "$");
	var domArr = domain.split(".");
	var len = domArr.length;
	for (i=0; i<len; i++) {
		if (domArr[i].search(atomPat) == -1) { return false; }
	}
	if (checkTLD && domArr[domArr.length-1].length!=2 && domArr[domArr.length-1].search(knownDomsPat)==-1) { return false; }
	if (len < 2) { return false; }
	return true;
}


Cette fonction renvoit un booléen : false en cas d'échec, true si la syntaxe de l'adresse est exacte (ce qui ne veut pas dire qu'elle existe). Disons que ça évite bon nombre d'erreurs de frappe et comme le fait remarquer Christophe B., ça ne dispense pas de faire d'autres tests coté serveur une fois le formulaire soumis...

Petite précision sur la fonction (qui fonctionne très bien sur mes sites depuis des années). Les extensions de domaines définnies au début (.com, .net, etc...) n'ont pas besoin d'etre étendues. Par exemple une adresse email anglaise du type "myaddress@mysite.co.uk" est très bien comprise...

Pour ceux qui s'intéressent de près au Javascript, je préconise de vous pencher sur d'excellentes solutions comme Prototype et/ou Scriptaculous qui font des merveilles et rendent la programmation dans ce langage plus facile. Par contre si c'est juste pour vérifier la syntaxe d'une adresse email, c'est clair que c'est pas très rentable...
Pour ce qui est de ce code qui me semble excellent, je ne sais pas vraiment où le placer à travers mes autres code. Je suis plus que débutant dans ce domaine... De plus comment je fais pour faire apparaître le message d'erreur si "false" ?
Voici le code que j'utilise présentement :

<script type="text/javascript">
<!--
function verif_formulaire()
{
if(document.formulaire.Nom.value == "") {
alert("Veuillez entrer votre nom!");
document.formulaire.Nom.focus();
return false;
}
if(document.formulaire.Prenom.value == "") {
alert("Veuillez entrer votre prenom!");
document.formulaire.Prenom.focus();
return false;
}
if(document.formulaire.Email.value == "") {
alert("Veuillez entrer votre adresse électronique!");
document.formulaire.Email.focus();
return false;
}
if(document.formulaire.Email.value.indexOf('@') == -1) {
alert("Il y a une erreur à votre adresse électronique!");
document.formulaire.Email.focus();
return false;
}
if(document.formulaire.Message.value == "") {
alert("Veuillez entrer votre message!");
document.formulaire.Message.focus();
return false;
}
var chkZ = 1;
for(i=0;i<document.formulaire.Telephone.value.length;++i)
if(document.formulaire.Telephone.value.charAt(i) < "0"
|| document.formulaire.Telephone.value.charAt(i) > "9")
chkZ = -1;
if(chkZ == -1) {
alert("Votre téléphone doit contenir que des nombres!");
document.formulaire.Telephone.focus();
return false;
}
}
//-->
</script>
j'adore ton fonction mais je ne sais pas ou placer ton ;)
Il y a juste un problème dans ta fonction c'est que si un nouveau domaine arrive, il faut modifier ton code. Par exempble il existe maintenant les ".me".
Mais sinon il a l'air pointilleu.
Tous les tests d'intégrité de donnée doivent toujours être effectué par le serveur pour des raisons de sécurité.

Il est en effet extrêmement facile de simuler un envoi de formulaire (par POST ou GET) sans passer par un navigateur internet. Il est donc impossible de garantir la fiabilité d'un input de la part d'un visiteur sur votre site web.

Les javascripts ne sont la que pour décharger le serveur des erreurs de l'utilisateur standard.

Ensuite tout site web doit être en théorie fonctionnel sans aucun javascript pour des raisons d'accés + sécurité. Ca c'est la rigueur.

Dire que les utilisateurs sans javascript j'en veux pas, c'est comme dire je veux pas installer de rampe pour handicapé à coté de mon escalier.

Faites attention à ne pas faire n'importe quoi avec des javascripts sous le sacro saint du web 2.0 (qui a une définition plus large que javascript über alles).
Messages postés
3133
Date d'inscription
mercredi 30 janvier 2002
Statut
Contributeur
Dernière intervention
20 octobre 2020
429
Salut a tous,
Voici un truc du site allatml. Je n'ai pas essayé celui là mais d'autres sur ma page d'un formulaire ( http://abarka.free.fr/Locations/formulaire_loc.html ).

Contrôle d'une adresse mail
1. Compatiblité
I.Explorer : Oui
Netscape : Oui

2. Description et scripts
Ce script permet de contrôler l'adresse électronique d'un formulaire, en détectant la présence de l'arobase (@) dans le champs spécifié. Exemple avec un formulaire comportant un champ appelé EMAIL (contenant l'adresse électronique).

<script language="javascript">
<!--
function arobaceok(EMAIL)
{
var a=document.forms[0].EMAIL.value;
var test="" + a;
for(var k = 0; k < test.length;k++)
{
var c = test.substring(k,k+1);
if(c == "@")
{
return true;
}
}
alert("Votre E-mail, Merci");
return false;
}
//-->
</script>


Après avoir placé ce script entre les balises </title> et </head>, vous devez tester l'envoi du formulaire en ajoutant l'événement Onsubmit à la balise <form>.

<form method=post action="post" name="AVIS" OnSubmit="return arobaceok(EMAIL)">


Bonne chance !!!

http://abarka.free.fr
Un adulte assis voit plus loin qu'un jeune debout.
bonjour

Truc à ne pas employer. Ce n'est pas un test, c'est une passoire à très gros trous.
@ tout court, @@@ ou !/#@ sont des adresses valables pour ce test

Un test de validité d'un champ se fait toujours du coté client. On ne balance le formulaire qu'après avoir vérifié tout ce qui peut être vérifié coté client. Ca c'est pour la rigueur ! Celà ne dispense pas d'une seconde batterie de tests ensuite en PHP.

Cependant, il peut être utile de vérfier également si le domaine de l'email existe vraiment, pour celà, on ne coupe pas à l'utilisation de PHP après validation du formulaire..Si ce n'est pas nécessaire, JAVASCRIPT !!!. Le serveur est à épargner si possible.

A ceux qui me répondraient ... et si Javascript est désactivé ? ... je réponds... pas d'envoi de formulaire.
Désactiver son javascript...a part pour chercher des passoires ca n'offre que des intérêts très limités surtout en ces temps ou les fonctionnalités Web2.0 nécessitent Javascript partout.
Il faudrait arrêter de dire n'importe... Les champs d'un formulaire doivent être Checké avant le Submit ET après.

Pourquoi ?

Tout simplement pour une raison pratique : Si on ne verifie pas AVANT, et que les données sont erronées, celà nous oblige à appeler une page de verification, puis de rappeler le formulaire si celui ne passe pas, amoins d'utilisé un peu d'ajax ce qui n'arrange en rien la chose.

La verification avant envoie, couplé à la proprièté disabled du bouton submit tant que les conditions minimales ne sont pas remplient evite par exemple qu'un internaute mal intentionné ne valide son formulaire sans s'être relu. Celà evite également des refresh ou reload intempestif. Si quelqu'un tente de contourner le formulaire, la verification côté serveur s'en rendra compte et stoppera l'execution du script.

En ce qui concerne la sécurité, JavaScript n'est en rien un probleme, sauf si on ne sait pas respecter les recommandations. Si tout est bien codé, il n'y a aucune raison qu'il y ai un probleme de sécurité. Deplus, si l'on verifie le formulaire AVANT envoie, celà aurait plus tendance à sécurisé le formulaire qu'a l'insécurisé.

Quand à la question de l'accès, le javascript n'empêche en rien l'accès à un site web. Encore une fois, si c'est bien fait tout passe pour le mieux. De plus, les gens désactivants javascript sont comme dit plus haut plutôt parano... Sachant en prime qu'aujourd'hui plus de 95% des sites utilisent du javascript couplé à d'autre langage.

Bref, pour conclure, je dirais que parfois il faudrait penser à refléchir et se renseigné avant de raconter tout et n'importe quoi.
Et l'accessibilité dans tout ça?
Je suis d'accord pour dire que quelqu'un naviguant sous Firefox avec javascript désactivé a de bonnes chances d'être parano, mais s'il est sous opera mini? ou tout autre navigateur mobile ne supportant pas ou supportant mal le javascript?
Pour bien faire un site doit fonctionner parfaitement sans javascript, celui-ci ne devant qu'aider à rendre la navigation plus fluide/animée.
Bonjour

Je pourrais te donner un script permettant de tester le format de ton adresse mail

mais je préférés te montrer un bon tuto qui te permettras d'apprendre a utiliser

les expressions réguliers

http://www.siteduzero.com/tutoriel-3-14618-les-expressions-regulieres-partie-2-2.html

"Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson.."
Messages postés
618
Date d'inscription
vendredi 26 juillet 2002
Statut
Membre
Dernière intervention
13 juillet 2013
971
Qu'entends-tu par "vérifier si un e-mail a le bon format"?
Contrôler que l'adresse est bien au format xxxxx@yyyyy.zzz ?
Messages postés
245
Date d'inscription
jeudi 27 mai 2004
Statut
Membre
Dernière intervention
18 juillet 2008
1
oui mais il faut faire gaffe au fait des espace , des truck comme sa qui ne sont pas admi ...

enfin c ' est pas grave j' ai trouver une appliquation javascript qui le fait presque et deriere j' ai mis une page en php qui verifie tout bien !!

c 'est tres loin d' etre infaible mais sa fait "garde fou" ....

merci quand meme de ton post !!!

surtout si longtemp apre la date ou j' ai fait ce post ...

rucht ( surpri ... )
Salut Rucht,
voici un fonction JS qui est censé verifie l@ mail mais elle ne marche pas chez moi mais ca peut peut-etre t'aider
//Verifie l'adresse E-Mail
function verifmail(adrr){
  var reg= /^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,})+$/;
  if(reg.test(ch1)==true) windows.alert(ch1," est une adresse valide");
  else windows.alert(ch1," n'est pas une adresse valide");  
}

Tchô!!
Euh!! Je viens de voir pourquoi elle marche pas j'ai mis ch1 au lieu de Adrr ou le contraire je vais la teste pour voir si sa marche mais normalement ca doit marche c'est mon prof d'info qui nous la donné dans ses cours.
A+
Messages postés
245
Date d'inscription
jeudi 27 mai 2004
Statut
Membre
Dernière intervention
18 juillet 2008
1
lol !!

il faut relire ces cour !!

rucht ( qui fait une pause ... )
Beaucoup plus simple !!!

function verifiermail(mail) {
if(mail!=""){
if ((mail.indexOf("@")>=0)&&(mail.lastIndexOf(".")>mail.indexOf("@"))) {
return true
} else {
alert("Mail invalide");
return false
}
}else{
return true
}
}
Messages postés
15
Date d'inscription
jeudi 18 septembre 2008
Statut
Membre
Dernière intervention
30 juin 2011
7
Donc avec ta fonction la syntaxe suivante: mail="@." est valide!!!
Messages postés
250
Date d'inscription
mercredi 5 décembre 2007
Statut
Membre
Dernière intervention
19 décembre 2011
47
C'est tout de meme plus facile si tu le fait par PHP ... VU que tu vas utliliser du php pour récupérer les données de ton formulaire .. non?
Oui, c'est beaucoup plus simple. Le seul soucis avec le PHP, c'est que c'est le serveur qui doit exécuter les lignes de code, donc ralentir la connexion.

Si c'est fait par du JS, c'est l'ordinateur de l'utilisateur.
Oui, c'est plus simple, mais le seul soucis avec le PHP, c'est que le serveur doit gérer les calcules. Donc ralentir le réseau.

Si c'est fait en JS, c'est l'ordinateur de l'utilisateur qui calculera.
Sans parler de l'accessibilité navigateur, il y a aussi l'accessibilité pour les personnes aveugles et malvoyantes.
Elles ont des outils étonnants pour surfer sur la toile... sauf que la plupart des sites sont tout simplement inaccessible...

C'est dommage que d'un côté, on développe des outils pour rendre le web accessible a tout le monde et que de l'autre on fasse l'inverse.

La double vérification permet de soulager le serveur des requêtes inutiles tout en permettant l'accessibilité et la sécurité.
Parce que le submit désactivé, ca n'empeche pas quelqu'un d'envoyer une requete du type www.monsiteweb.fr/page_result.php?nom=bla etc.
le "page_result" et le "nom" etc étant généralement facilement récupérable dans le source.

Merci pour les réponses que vous avez donné par contre, elles m'ont été très utile !
Tu rajoutes type="url" a l'input pour mettre l'email :)

++
yt-r-tydrdrderdsd
Pourquoi allé jusq'au javascript alors que le html permet de faire la même chose ? :O ( <input name="machin" ... type="url">
Afin de vérifier que l'adresse saisie soit valide.
Pourquoi ne pas tout simplement imposer le format xxxxx@zzzzz.yyy à l'utilisateur ?
Un petit bout de code HTML et tout est résolu sans passer par du javascript ni php...

Entrez votre email : <input type="text" name="debutmail" size="15">@<input type="text" name="milieumail" size="6" value="hotmail">.<input type="text" name="finmail" size="3" value="fr"><br />


On voit ici 3 différentes variables censées enregistrer le debut, milieu et la fin de l'email avec "@" et "." entre chaque.
On récupère tout simplement les variables ainsi :

$debutmail = $_POST['debutmail'];
$milieumail = $_POST['milieumail'];
$finmail = $_POST['finmail'];


Puis on les remet en forme pour obtenir notre email dans le bon format :)

$mail = $debutmail."@".$milieumail.".".$finmail ;


Zous.
C'est une bonne idée, mais pour donner à un patron cela ne passe pas très bien et ce n'est pas ergonomique.
Impec ton code, efficace. Merci
Personne pour m'aider ???? Help !
J'ai bien aimé le script de Kharma, mais je ne sais pas vraiment le mettre en place dans mes codes. Ce que j'utilise présentement pour la vérification de mon champ "mail" est trop simple pas suffisamment sécuritaire. Donc j'aurais aimé utiliser le script de Kharma qui me semble beaucoup plus complet.

Je l'utilise comment ? Pardonné ma nulité dans ce domaine. Je suis concepteur infographiste et non programmeur. J'y travail, mais j'ai ce problème à régler en urgence d'où ma demande d'aide.
Merci au courageux qui voudrais bien me répondre.

function verif_mail(input, div-si message){
var regmail = /^[a-zA-Z0-9._-]+@[a-z0-9.-]{2,}[.][a-z]{2,6}$/;
var mail = recup_donee(input);
if (regmail.exec(mail)!=null){
valide(div_validation);
}
else (message d'erreur);}
}
Messages postés
11
Date d'inscription
jeudi 26 août 2010
Statut
Membre
Dernière intervention
2 septembre 2010

slt
bon moi je cherche à verifier si un email a le bon format dans un formulaire en php peux tu me dire comment le faire et merci