vérification des adresses e_mail

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : vérification des adresses e_mail

par AB » 29 juin 2007, 18:02

Bonjour,
Merci AB pour les informations,
ok j'ai procédé comme indiqué:

Code : Tout sélectionner

<form action="page3" method="post" id="<?php echo 'fmail'.$v ?>" onsubmit='return verifMail(document.forms.['<?php echo 'fmail'.$v?>'].<?php echo "e_mail".$v; ?>.value);'> <input class="text" size="8" type="text" name="<?php echo "e_mail".$v; ?>" id="<?php echo "e_mail".$v; ?>" value=""/>
mais ça marche toujours pas, il y a surement une erreur syntaxique! :(
Y'a pas de point avant le crochet qui suit document.forms, essaies la syntaxe ci-dessous sans rien changer

Code : Tout sélectionner

<form action="page3" method="post" id="<?php echo 'fmail'.$v ?>" onsubmit="return verifMail(document.forms['<?php echo 'fmail'.$v?>'].<?php echo 'e_mail'.$v; ?>.value);"> <input class="text" size="8" type="text" name="<?php echo 'e_mail'.$v; ?>" id="<?php echo 'e_mail'.$v; ?>" value="" />
Si ça ne marche pas c'est que ça vient d'ailleurs.

par Invité » 29 juin 2007, 10:40

Bonjour,
Merci AB pour les informations,
ok j'ai procédé comme indiqué:

Code : Tout sélectionner

<form action="page3" method="post" id="<?php echo 'fmail'.$v ?>" onsubmit='return verifMail(document.forms.['<?php echo 'fmail'.$v?>'].<?php echo "e_mail".$v; ?>.value);'> <input class="text" size="8" type="text" name="<?php echo "e_mail".$v; ?>" id="<?php echo "e_mail".$v; ?>" value=""/>
mais ça marche toujours pas, il y a surement une erreur syntaxique! :(

par AB » 29 juin 2007, 05:54

Bonsoir, je vous remercie

<form action="page3" method="post" id="form" name="form" onsubmit='return verifMail(document.form.<?php echo "e_mail".$v; ?>.value);'>

<input class="text" size="8" type="text" name="<?php echo "e_mail".$v; ?>" id="<?php echo "e_mail".$v; ?>" value=""/>

[/code]
j'ai pas renomé à chaque itération le formulaire, c'est possible qu il y avait une erreur syntaxique et comme je suis debutante...
Merci
id="form" répété plusieurs fois dans une même page ne peut pas marcher car un id doit être unique. il faut donc le renommer à chaque itération.
C'est certainement pour cette raison que cela ne teste que le premier champ. Tu ne dois pas être loin de la solution. :wink:

par dasou » 29 juin 2007, 00:14

Bonsoir, je vous remercie
j'ai essayé ce que vous m'avez conseillée mais ça marche pas :(
mais quand j'ai procédé comme cela, le programme teste que le 1er champ

Code : Tout sélectionner

for($v=1;$v<=$_POST['n'];$v++) { <form action="page3" method="post" id="form" name="form" onsubmit='return verifMail(document.form.<?php echo "e_mail".$v; ?>.value);'> <input class="text" size="8" type="text" name="<?php echo "e_mail".$v; ?>" id="<?php echo "e_mail".$v; ?>" value=""/>
j'ai pas renomé à chaque itération le formulaire, c'est possible qu il y avait une erreur syntaxique et comme je suis debutante...
je comprends pas pourquoi ça teste que le 1er champ. Merci

par AB » 28 juin 2007, 17:12

Oui je n'ai répondu directement qu'à ta question sur la variable mais il y a une faute de syntaxe dans ton javascript

Code : Tout sélectionner

<form action="page3" method="post" id="<?php echo 'fmail'.$v ?>" onsubmit="verifMail(document.forms.['<?php echo 'fmail'.$v?>'].<?php echo 'e_mail'.$v; ?>.value);" <input class="text" size="8" type="text" name="<?php echo 'e_mail'.$v; ?>" id="<?php echo 'e_mail'.$v; ?>" value="" />
<?php echo 'fmail'.$v?> indique l'id du formulaire
<?php echo 'e_mail'.$v; ?> indique d'id du champ dans le formulaire

par Invité » 28 juin 2007, 16:33

salut,

ça marche pas :cry:

par AB » 27 juin 2007, 22:49

Peut-être ça?

Code : Tout sélectionner

<form action="page3" method="post" onsubmit='return verifMail(document.formulaire.<?php echo "e_mail.$v"?>.value);'>

par dasou » 27 juin 2007, 10:18

bonjour, merci pour vos reponses.
oui je compte faire une boucle pour tout tester le problème est que à chaque fois le nom du champ change, comment concaténer une variable php au nom de mon champ :?: :?: :?: :?:
voilà ma boucle:

Code : Tout sélectionner

<?php for($v=1;$v<=$_POST['n'];$v++) { ?> <form action="page3" method="post" onsubmit='return verifMail(document.formulaire.e_mail.$v.value);'> <input class="text" size="8" type="text" name="<?php echo "e_mail".$v; ?>"/> . . . }
mon problème se pose au niveau de: onsubmit='return verifMail(document.formulaire.e_mail.$v.value);' et plus précisément "e_mail.$v"
Merci, j'attends vos reponses

par Sékiltoyai » 26 juin 2007, 23:19

Au passage, même si tu fais une vérification par javascript, ca ne remplace aucunement une vérification en php qui celle là, est indispensable.

par AB » 26 juin 2007, 20:09

Je sais pas si j'ai bien saisi ta question.
A priori j'aurai envie de te répondre de faire une boucle de traitement sur l'ensemble de tes formulaires

vérification des adresses e_mail

par dasou » 26 juin 2007, 18:27

bonjour tout le monde,
j'utilise php et javascript; voilà mon problème:
je fais la saisie de personnes par lot,
page1: contient le nombre de personnes (n)
page2: contiendra un tableau avec n ligne (le nombre saisi dans la page1) et chaque ligne comporte un ensemble de formulaires y compris des formulaire pour saisir des adresses e_mail.
j'utilise cette fonction pour verifier une adresse e_mail sur un seul formulaire;

Code : Tout sélectionner

function verifMail(a) { testm = 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)=='.') testm = true; } } } } if (testm==false) alert('Votre adresse e-mail est incorrecte.'); return testm ; }
et pour l'utiliser sur un seul formulaire (e_mail):

Code : Tout sélectionner

<form action="page3" method="post" onsubmit='return verifMail(document.formulaire.e_mail.value);'>

ma question est:comment appliquer cette fonction sur un ensemble de formulaires qui se produissent dynamiquement? Merci d'avance.