Rechercher : dans
Par :

Detection de bonne adresse email

Dernière réponse le 6 déc 2006 à 18:16:48 hubert, le 5 déc 2006 à 17:18:48 
 Signaler ce message aux modérateurs

Bonjour, je crée un site internet comportant un formulaire dans lequel je demande l'email du visiteur.
je programme en html et en javascript.
j'aimerais que le programme detecte lorsque l'adresse entrée n'a pas la forme d'un email (truc@machin.fr ou com) pour lui eviter d'envoyer un email de confirmation dans le vide ! et qu'il affiche alors un mesage d'erreur a l' utilisateur.
merci

Meilleures réponses pour « detection de bonne adresse email » dans :
[Webmaster] Protéger les adresses email contre les bots Voir Protéger les adresses email contre les bots Vous êtes webmaster et pour une raison x, vous stockez l'adresse email de plusieurs membres de votre site . Ces adresses sont consultables dans leur profil (ex: forum, blog etc....). Or, aujourd'hui,...
Obtenir une adresse jetable VoirPlusieurs sites vous permettent de créer une adresse jetable (ou adresse email anti-spam), pour l'utiliser sur un site auquel vous ne faites pas confiance mais qui requiert une adresse e-mail. Qu'est-ce qu'une adresse jetable? Il s'agit d'une...

1

amel, le 5 déc 2006 à 17:26:00

Voilà un lien avec le code pour tester la validité d'une adresse email !
http://www.asp-magazine.com/article-133.html
bon courage

Répondre à amel

2

Reivax962, le 5 déc 2006 à 17:53:41

Attention, ce script ne fait pas vraiment de vérification complète... Il se contente de vérifier qu'il y a bien un @ et un . dans l'email, sans même vérifier si il n'y a pas d'espaces, d'accents, etc...
Il laisserait passer truc.machin@ , ce qui n'est vraiment valide !

Je te conseille plutôt d'aller faire un tour du côté des expressions rationnelles : (en reprenant la structure du code déjà donné, désolé j'ai la flemme de faire du 100% personnel aujourd'hui :p )

<script language="javascript">
function testemail() {

var email=document.forms['form_mail'].elements['email'].value;
var expressionEMail = /^[0-9a-zA-Z\._-]+@[0-9a-zA-Z\._-]+\.[0-9a-zA-Z\._-]+$/;

if (!email.match(expressionEMail)) {
// l'adresse entrée est incorrecte
alert("adresse email incorrecte")
}
else
{
// l'adresse est correcte
// on soumet le formulaire
document.forms['form_mail'].submit()

}
}
</script>
<form method="POST" name="form_mail" action="tr4.asp">
<input type="text" name="email" size="20"><input type="button" value="OK" onclick="testemail();"></form>

Répondre à Reivax962

5

slooptoo, le 5 déc 2006 à 22:35:41

Régulières les expressions
pas rationnelles ;-)
juste une petite correction :
/^[0-9a-zA-Z\._-]+@[0-9a-zA-Z\._-]+\.[0-9a-zA-Z]+$/
j ai juste enleve .-_ en fin
(je ne sais pas s'il existe des adresse terminant avec des numeriques

Répondre à slooptoo

7

Reivax962, le 6 déc 2006 à 16:29:05

Hum ^^
Rationnelles, justement... Le "régulière" n'est qu'une mauvaise traduction de l'Anglais "Regular Expression" !

Répondre à Reivax962

8

 slooptoo, le 6 déc 2006 à 18:16:48

Ah oui c est tout à fait exact et je me suis donc bien planté sur ce coup
désolé sincerement

Répondre à slooptoo

3

hubert, le 5 déc 2006 à 18:00:25

Merci beaucoup c'est exactement ce que je cherchais !
a une prochaine (je debute..) ;-)

Répondre à hubert

4

Ssylvainsab, le 5 déc 2006 à 22:12:32

Salut.

Il y a aussi une astuce pour faire ca en php :
php verifier une adresse electronique format du mail

J'ai un truc pour vérifier si le domaine est bon, je le mettrais quand j'aurais le temps ;-)

a plus Sylvain
Longue vie à bobo !

Répondre à Ssylvainsab

6

jisisv, le 6 déc 2006 à 14:51:37

Moi , j'utilise ceci en PHP

 public static function checkemail($email)
  {
    // see http://www.devshed.com/c/a/PHP/Email-Address-Verification-wi­th-PHP/2/
    // checks proper syntax
    if (!preg_match("/^([a-zA-Z0-9])+([a-zA-Z0-9\._-])*@([a-zA-Z0-9_-])+([a-zA-Z0-9\._-]+)+$/" , $email))
      {
	return false;
      }
    //DEBUG NO NETWORK
    //return true;
    // gets domain name
    list($username,$domain)=split('@',$email);
    // checks for if MX records in the DNS
    $mxhosts = array();

    if(!@getmxrr($domain, $mxhosts)) {
      // no mx records, ok to check domain
      if (!@fsockopen($domain,25,$errno,$errstr,30)) {
	return false;
      } else {
	return true;
      }
    } else {
      // mx records found
      foreach (@$mxhosts as $host) {
	if (@fsockopen($host,25,$errno,$errstr,30)) {
	  return true;
	}
      }
      return false;
    }
  }
Gates gave you the windows.
GNU gave us the whole house.(Alexandrin)

Répondre à jisisv