fonction pour tester un email

Mammouth du PHP | 843 Messages

10 févr. 2007, 12:36

salut à tous :)

je voudrai créé une fonction en js pour que dans un formulaire, si je clique sur un lien, on verifie la validité de l'email entrer dans le champ "email" et que l'on traite l'action a adopter comme suit:

- le champ est vide ==> alert('Veuillez entrer un email !')
- le email entrer est invalide ==> alert("L'email entrer est invalide !")
- le mail entrer est valid ==> on ouvre une popup pour executer un script php qui va envoyer un email vers l'email entrer. (dans cette fenetre sera spécifié à l'utilisateur que si il recoit pas le mail, il doit ajouter l'email expediteur à ses contact puis relancer le script). Pour cela il faudra passer l'email entrer dans l'url du script à executer dans la popup (window.open('envoi_email.php?email=email_entrer', 'envoi_email',...)

J'ai fait comme cela mais sa marche pas:

Code : Tout sélectionner

<html> <head> <meta http-equiv="Content-Script-Type" content="text/javascript"> <title>ma page de test</title> </head> <body> <script> function test(email) { var reg = /^[a-z0-9._-]+@[a-z0-9.-]{2,}[.][a-z]{2,3}$/ var email_entrer = document.formulaire.email.value if(reg.exec(email)==true) /*si l'email est valide*/ { window.open('test_email.php?email=email_entrer', 'test_email', 'width=600, height=500, top=0, left=0') } elseif(document.formulaire.email.value == "") /*si pas d'email entrer*/ { alert("Veuillez entrer votre adresse email") } else /*si l'email n'est pas valid*/ { alert("L\'email saisi n\'est pas valide !") } } </script> <form action="<?php echo($_SERVER['PHP_SELF']); ?>" name="formulaire" method="post"> <fieldset> <label for="label_email">Votre adresse &eacute;lectronique :</label><input type="text" id="label_email" name="email" value="" /><br /> <a href="#" onClick="return test(document.formulaire.email.value)">tester l'email en cliquant ici</a> <input type="submit" class="verif" name="envoi" tabindex="15" value="Envoyer" /> </fieldset> </form> </body> </html>
si quelqu'un peut m'aider ;)
merci d'avance.
:: contactez moi par MP ::
:non: NON au language SMS sur les forums :non:

Mammouth du PHP | 843 Messages

10 févr. 2007, 14:39

j'ai presque réussi mais il me reste un point que j'arrive pas à resoudre :?

Voici ce que j'ai fait (remarquer que c'est plus propore quand même):

Code : Tout sélectionner

<html> <head> <meta http-equiv="Content-Script-Type" content="text/javascript"> <title>ma page de test</title> </head> <body> <script> function test(email) { var email = document.formulaire.email.value; var reg = /^[a-z0-9._-]+@[a-z0-9.-]{2,}[.][a-z]{2,3}$/; if(document.formulaire.email.value == "") //si pas d'email entrer { alert("Veuillez entrer votre adresse email"); } else { var result = ((reg.exec(email)!=null)); if(result==false) //si l'email n'est pas valide { alert("L\'email saisi n\'est pas valide !"); } else //si l'email est valide { window.open('test_email.php?email=.email', 'test_email', 'width=600, height=500, top=0, left=0'); } } } </script> <form action="<?php echo($_SERVER['PHP_SELF']); ?>" name="formulaire" method="post"> <fieldset> <label for="label_email">Votre adresse &eacute;lectronique :</label><input type="text" id="label_email" name="email" value="" /><br /> <a href="#" onClick="test()">tester l'email en cliquant ici</a> <input type="submit" class="verif" name="envoi" tabindex="15" value="Envoyer" /> </fieldset> </form> </body> </html>
par contre j'arrive pas à inclure l'email saisi dans l'url de la fenetre à ouvrir :cry:

l'url de la popup est "test_email.php?email=.email" alors que j'aimerai faire en sorte qu'elle soit "test_email.php?email=[email protected]"

si quelqu'un peu m'aider ;)
:: contactez moi par MP ::
:non: NON au language SMS sur les forums :non:

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

10 févr. 2007, 14:44

l'url de la popup est "test_email.php?email=.email"
Pose toi la question... pourquoi ".email" et à quel moment l'adresse est "construite"... tu regarde à cet endroit et on y voit :
window.open('test_email.php?email=.email',...
(au passage la concaténation en Js se fait avec "+" )

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

Mammouth du PHP | 843 Messages

10 févr. 2007, 15:05

oki j'ai trouvé :D
merci truc car sans toi je pense que je serai passer à coté ;)

je remet le code au cas ou il serve à quelqu'un d'autre:

Code : Tout sélectionner

<html> <head> <meta http-equiv="Content-Script-Type" content="text/javascript"> <title>ma page de test</title> </head> <body> <script> function test(email) { var email = document.formulaire.email.value; var reg = /^[a-z0-9._-]+@[a-z0-9.-]{2,}[.][a-z]{2,3}$/; if(document.formulaire.email.value == "") //si pas d'email entrer { alert("Veuillez entrer votre adresse email"); } else { var result = ((reg.exec(email)!=null)); if(result==false) //si l'email n'est pas valide { alert("L\'email saisi n\'est pas valide !"); } else //si l'email est valide { window.open('test_email.php?email='+email, 'test_email', 'width=600, height=500, top=0, left=0'); } } } </script> <form action="<?php echo($_SERVER['PHP_SELF']); ?>" name="formulaire" method="post"> <fieldset> <label for="label_email">Votre adresse &eacute;lectronique :</label><input type="text" id="label_email" name="email" value="" /><br /> <a href="#" onClick="test()">tester l'email en cliquant ici</a> <input type="submit" class="verif" name="envoi" tabindex="15" value="Envoyer" /> </fieldset> </form> </body> </html>
@++
:: contactez moi par MP ::
:non: NON au language SMS sur les forums :non: