Tom's Guide > Forum > Programmation > vérifier un e-mail
Mot :    Pseudo :           
 

Bonjour à tous,

J'ai une newsletter, mais un petit détail me chagrine : elle ne vérifie pas les e-mails. J'aimerais mettre une fonction pour vérifier les e-mails, et en avertir par une petite fenêtre.

Voici le script qui permet lui di d'enregistrer l'adresse et de vérifier si l'adresse est déjà ou pas dans la base.

Code:

Code :
  1. <?php
  2. if(mysql_num_rows(mysql_query("SELECT Email FROM newsletter WHERE Email='$_POST[email]'" ))) {
  3.    
  4.     echo "<center><br>Votre adresse e-mail est deja inscrite à la newsletter des Jeunes Sapeurs Pompiers de Givry! (<b>$_POST[email]</b> )</center>" ;
  5.    
  6.    
  7.     echo "<br><center><a href='javascript:window.close()'>FERMER LA FENETRE</center>";
  8.     exit();
  9. }
  10.    
  11. mysql_query("INSERT INTO newsletter VALUES ('','$_POST[email]')" ) or die ('Erreur SQL !<br>'.mysql_error());
  12.    
  13.     mail_inscription();
  14.     echo "Votre inscription à la newsletter du site Internet des  Jeunes Sapeurs Pompiers de Givry a été réussie.
  15. Merci pour votre inscription! Vous receverez dès maintenant, les news du site.<center>Votre adresse e-mail est <b>$_POST[email]</b></center>";
  16.     echo "<br><center><a href='javascript:window.close()'>FERMER LA FENETRE</center>";
  17.     break;
  18. ?>



Merci d'avance,


Message édité par kikong le 17-08-2006 à 11:07:31
Liens sponsorisés
Inscrivez-vous ou connectez-vous pour masquer ceci.

Bonsoir,

google > javascript regexp


Message édité par Vinz42 le 17-08-2006 à 00:23:59
------------------------------ Don't panic!
mouths91 à dit : "[...]des rageux comme kelnem"
Répondre à Vinz42

regexp c'est php nan ?

Répondre à okinou

non, ca existe aussi en javascript.
regexp javascript

Mais c'est vrai que vu son code, il peut faire la meme chose en php.


Message édité par Vinz42 le 17-08-2006 à 01:35:21
------------------------------ Don't panic!
mouths91 à dit : "[...]des rageux comme kelnem"
Répondre à Vinz42

j'ai essayer ce code là :

Code :
  1. function verif_email($email) {
  2. $chars = "/^([a-z0-9_]|\\-|\\.)+@(([a-z0-9_]|\\-)+\\.)+[a-z]{2,4}\$/i";
  3. if(strstr($user_email, '@') && strstr($user_email, '.')) {
  4. if (preg_match($chars, $user_email)) {
  5. return true;
  6. } else {
  7. return false;
  8. }
  9. } else {
  10. return false;
  11. }
  12. }



Le truc avec celle là c'est que ça ne fonctionne pas!

Pour ce qui est de la fonction regexp, j'avais pas de mis de balise javascript avant et après; donc le code ne marchait pas, et après j'ai mis les balises, et là ça m'avait foutu en l'air tout le reste du code.

Répondre à kikong

Tu as essayer ca :

Code :
  1. function validation()
  2.         {
  3.             var email    = document.formulaire.EMAIL.value;
  4.                 var verif    = /^[a-zA-Z0-9_-]+@[a-zA-Z0-9-]{2,}[.][a-zA-Z]{2,3}$/
  5.                 if (verif.exec(email) == null)
  6.             {
  7.                 alert("Votre email est incorrecte" );
  8.                 return false;
  9.             }
  10.             else
  11.             {
  12.                 alert("Votre email est correcte" );
  13.                 return true;
  14.             }   
  15.         }



source : ici


Message édité par Vinz42 le 17-08-2006 à 12:14:21
------------------------------ Don't panic!
mouths91 à dit : "[...]des rageux comme kelnem"
Répondre à Vinz42

Bizarre il me dit qu'il y a une erreur de code....

Code :
  1. case 3;
  2. function validation()
  3.         {var email    = document.formulaire.EMAIL.value;
  4.           var verif    = /^[a-zA-Z0-9_-]+@[a-zA-Z0-9-]{2,}[.][a-zA-Z]{2,3}$/
  5.                 if (verif.exec(email) == null)
  6.               {
  7.                 alert("Votre email est incorrecte" );
  8.                 return false;
  9.             }
  10.               else
  11.               {
  12.                   alert("Votre email est correcte" );
  13.                   return true;
  14.               } 
  15.         }
  16. if(mysql_num_rows(mysql_query("SELECT Email FROM newsletter WHERE Email='$_POST[email]'" ))) {
  17.     echo "<center><br>Votre adresse e-mail est deja inscrite à la newsletter des Jeunes Sapeurs Pompiers de Givry! (<b>$_POST[email]</b> )</center>" ;
  18.     echo "<br><center><a href='javascript:window.close()'>FERMER LA FENETRE</center>";
  19.     exit();
  20. }
  21. mysql_query("INSERT INTO newsletter VALUES ('','$_POST[email]')" ) or die ('Erreur SQL !<br>'.mysql_error());
  22.     mail_inscription();
  23.     echo "Votre inscription à la newsletter du site Internet des  Jeunes Sapeurs Pompiers de Givry a été réussie.
  24. Merci pour votre inscription! Vous receverez dès maintenant, les news du site.<center>Votre adresse e-mail est <b>$_POST[email]</b></center>";
  25.     echo "<br><center><a href='javascript:window.close()'>FERMER LA FENETRE</center>";
  26.     break;


*
Voici le code que j'ai (enfait c'est une page php, avec 4 case et qui va à un formulaire chacune.)

Répondre à kikong

Boulet. c'est du javascript. Si tu le met dans les balise php, c'est sur que ca va pas aller.
Regarde le lien que j'ai mis pour avoir un exemple.

ps : Quand je dis 'boulet', c'est pas méchant. c'est juste que c'est une erreur de débutant, et aussi que tu n'a pas dû regarder le lien.

------------------------------ Don't panic!
mouths91 à dit : "[...]des rageux comme kelnem"
Répondre à Vinz42

Mais en fait faut mettre le js au début, hors des balises php?
Y a pas un code php qui est équivalent?

Répondre à kikong

c possible de le faire en php mais jai un peu la fleme de chercher (dsl)
bonne chance

Répondre à sparrowix

j'ai trouvé un code php, voici le tout, mais ça ne marche toujours pa.....

Code :
  1. case 3;
  2. function valid_email($email) {
  3.   // First, we check that there's one @ symbol, and that the lengths are right
  4.   if (!ereg("^[^@]{1,64}@[^@]{1,255}$", $email)) {
  5.     // Email invalid because wrong number of characters in one section, or wrong number of @ symbols.
  6.     return false;
  7.   }
  8.   // Split it into sections to make life easier
  9.   $email_array = explode("@", $email);
  10.   $local_array = explode(".", $email_array[0]);
  11.   for ($i = 0; $i < sizeof($local_array); $i++) {
  12.     if (!ereg("^(([A-Za-z0-9!#$%&#038;'*+/=?^_`{|}~-][A-Za-z0-9!#$%&#038;'*+/=?^_`{|}~\.-]{0,63})|(\"[^(\\|\" )]{0,62}\" ))$", $local_array[$i])) {
  13.       return false;
  14.     }
  15.   } 
  16.   if (!ereg("^\[?[0-9\.]+\]?$", $email_array[1])) { // Check if domain is IP. If not, it should be valid domain name
  17.     $domain_array = explode(".", $email_array[1]);
  18.     if (sizeof($domain_array) < 2) {
  19.         return false; // Not enough parts to domain
  20.     }
  21.     for ($i = 0; $i < sizeof($domain_array); $i++) {
  22.       if (!ereg("^(([A-Za-z0-9][A-Za-z0-9-]{0,61}[A-Za-z0-9])|([A-Za-z0-9]+))$", $domain_array[$i])) {
  23.         return false;
  24.       }
  25.     }
  26.   }
  27.   return true;
  28. }
  29. if(mysql_num_rows(mysql_query("SELECT Email FROM newsletter WHERE Email='$_POST[email]'" ))) {
  30.     echo "<center><br>Votre adresse e-mail est deja inscrite à la newsletter des Jeunes Sapeurs Pompiers de Givry! (<b>$_POST[email]</b> )</center>" ;
  31.     echo "<br><center><a href='javascript:window.close()'>FERMER LA FENETRE</center>";
  32.     exit();
  33. }
  34. mysql_query("INSERT INTO newsletter VALUES ('','$_POST[email]')" ) or die ('Erreur SQL !<br>'.mysql_error());
  35.     mail_inscription();
  36.     echo "Votre inscription à la newsletter du site Internet des  Jeunes Sapeurs Pompiers de Givry a été réussie.
  37. Merci pour votre inscription! Vous receverez dès maintenant, les news du site.<center>Votre adresse e-mail est <b>$_POST[email]</b></center>";
  38.     echo "<br><center><a href='javascript:window.close()'>FERMER LA FENETRE</center>";
  39.     break;

Répondre à kikong

kikong a écrit :

j'ai trouvé un code php, voici le tout, mais ça ne marche toujours pa.....

Code :
  1. plein de code dégueulasse




J'ai pas pris le temps de lire ton truc, mais rien que la première ligne "case 3;" faut mettre un :
Ensuite une fonction, faut l'appeler pour l'utiliser.

'fin bref, apprend le PHP avant je pense...

Message cité 1 fois
Message édité par OmaR le 17-08-2006 à 22:16:16
------------------------------ Les dessins des seins ou les desseins des saints ?
Répondre à OmaR

OmaR a écrit :

J'ai pas pris le temps de lire ton truc, mais rien que la première ligne "case 3;" faut mettre un :
Ensuite une fonction, faut l'appeler pour l'utiliser.

'fin bref, apprend le PHP avant je pense...


Tiens, bonne idée.

------------------------------ Don't panic!
mouths91 à dit : "[...]des rageux comme kelnem"
Répondre à Vinz42

Si ça peut aider...

$atom = '[-a-z0-9!#$%&\'*+\\/=?^_`{|}~]';
// caractères autorisés avant l'arobase

$domain = '([a-z0-9]([-a-z0-9]*[a-z0-9]+)?)';
// caractères autorisés après l'arobase (nom de domaine)

$regex = '/^' . $atom . '+' .
// Une ou plusieurs fois les caractères autorisés avant l'arobase

'(\.' . $atom . '+)*' .
// Suivis par zéro point ou plus
// séparés par des caractères autorisés avant l'arobase

'@' .
// Suivis d'un arobase

'(' . $domain . '{1,63}\.)+' .
// Suivis par 1 à 63 caractères autorisés pour le nom de domaine
// séparés par des points

$domain . '{2,63}$/i';
// Suivi de 2 à 63 caractères autorisés pour le nom de domaine

// test de l'adresse e-mail

if (preg_match($regex, $variableQuiContientLeMail)) {
$emailValide = true;
} else {
$emailValide = false;
}


Message édité par romainb_idn@idn le 18-08-2006 à 13:29:35
------------------------------ Romain
Répondre à romainb_idn@idn
Tom's Guide > Forum > Programmation > vérifier un e-mail
Aller à :

Il y a 2400 utilisateurs connus et inconnus. Pour voir la liste des connectés connus, cliquez ici.

Attention

Vous allez répondre sur un sujet resté inactif pendant plus de 6 mois.
Assurez-vous d'apporter des éléments nouveaux à la discussion avant de poursuivre.

Répondre Annuler
Liens