Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1272 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  [PHP]probleme vérification e-mail +mysql

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[PHP]probleme vérification e-mail +mysql

n°1710563
Roken
Acheteur Compulsif !
Posté le 31-03-2008 à 18:07:45  profilanswer
 

Bonjour j'ai un problème actuellement sur un bout de code.
 
En faites je veux que la fonction php incluse me test l'email et les autres champs ( nom, prénom etc), ça marche très bien pour les champs nom etc mais pas avec la fonction mail.
 
En fait si ça marche pour l'email ça m'indique bien qu'il faut que l'utilisateur rentre correctement son email mais ca me l'insère quand même dans ma table...
 
 
voici le code en question.
 

Code :
  1. <?php
  2. // On commence par récupérer les champs
  3. if (isset($_POST['email']))
  4. {
  5. $_POST['email'] = htmlspecialchars($_POST['email']); // On rend inoffensives les balises HTML que le visiteur a pu rentrer
  6.     if (preg_match("#^[a-z0-9._-]+@[a-z0-9._-]{2,}\.[a-z]{2,4}$#", $_POST['email']))
  7.     {
  8.         echo 'L\'adresse ' . $_POST['email'] . ' est <strong>valide</strong> !';
  9.     }
  10.     else
  11.     {
  12.         echo 'L\'adresse ' . $_POST['email'] . ' n\'est pas valide, recommencez !';
  13.     }
  14. }
  15. if(isset($_POST['nom']))        $nom=$_POST['nom'];
  16. else      $nom="";
  17. if(isset($_POST['prenom']))       $prenom=$_POST['prenom'];
  18. else      $prenom="";
  19. if(isset($_POST['email']))       $email=$_POST['email'];
  20. else      $email="";
  21. // On vérifie si les champs sont vides
  22. if(empty($nom) OR empty($prenom) OR empty($email) )
  23.     {
  24.     echo '<p><font color="red">Attention, veuillez remplir tous les champs qui sont identiés par un *</font></p>';
  25.     }
  26. // Aucun champ n'est vide, on peut enregistrer dans la table
  27. else   
  28.     {
  29.     // connexion à la base
  30. $db = mysql_connect('localhost', 'root', '')  or die('Erreur de connexion '.mysql_error());
  31. // sélection de la base   
  32.     mysql_select_db('PCB',$db)  or die('Erreur de selection '.mysql_error());
  33.     // on regarde si l'url existe déjà
  34.     $sql = "SELECT id FROM contact WHERE email='$email'";
  35.     $req = mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());
  36.    
  37.     // on compte le nombre de résultats
  38.     $res = mysql_num_rows($req);
  39.     if($res!=0)  // l'url existe déjà, on affiche un message d'erreur
  40.         {
  41.     echo '<p><font color="red">Désolé, mais cette URL existe déjà dans notre base.</font></p>';
  42.         }
  43.     else  // L'url n'existe pas, on insère les informations du formulaire dans la table  
  44.     // on écrit la requête sql
  45.  {
  46.     $sql = "INSERT INTO contact(id, nom, prenom, email) VALUES('','$nom','$prenom','$email')";
  47.    
  48.     // on insère les informations du formulaire dans la table
  49.     mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());
  50.     // on affiche le résultat pour le visiteur
  51.     echo '<p>Vos infos on été ajoutées.</p>';
  52.  }
  53.     mysql_close();  // on ferme la connexion
  54.     }
  55. ?>


mood
Publicité
Posté le 31-03-2008 à 18:07:45  profilanswer
 

n°1710574
babasss
Posté le 31-03-2008 à 18:26:10  profilanswer
 

Tu vérifies ton adresse mail mais si elle est fausse, tu ne fais rien de spécial (à part le dire).
Il faudrait déplacer ton code qui se trouve entre les lignes 7 et 14 à la ligne 31 en remplaçant le if par un elseif.


---------------
Feedback : http://forum.hardware.fr/hfr/Achat [...] 2666_1.htm
n°1710664
Roken
Acheteur Compulsif !
Posté le 31-03-2008 à 21:36:28  profilanswer
 

oki merci je vais tester ça ;)
 
ca<marche merki bcp  :jap:


Message édité par Roken le 31-03-2008 à 22:20:22
n°1712336
Roken
Acheteur Compulsif !
Posté le 03-04-2008 à 17:54:39  profilanswer
 

Ah en faites j'ai fais ce que tu as dis mais cela ne marche pas ^^
 
Enfin il me dit juste quand j'envoie le formulaire "l'adresse mail est valide" ou "l'adresse mail n'est pas valide".
 
Si elle est valide elle n'envoie pas le formulaire dans la table....

n°1713512
Roken
Acheteur Compulsif !
Posté le 06-04-2008 à 23:06:32  profilanswer
 

un ti up :)

n°1714873
Xav_
The only one...
Posté le 09-04-2008 à 11:20:31  profilanswer
 

tu peux poster ton nouveau code, pour voir où tu as placé le contrôle du mail (suite au conseil de babass), et comment tu gère la fait qu'il soit bon ou pas ???


---------------
- Xav - ...There are no crimes when there are no laws... -- Xav's World
n°1720788
Roken
Acheteur Compulsif !
Posté le 21-04-2008 à 10:31:47  profilanswer
 

voici le code.
 

Code :
  1. <?php
  2. // On commence par récupérer les champs
  3. if(isset($_POST['nom']))        $nom=$_POST['nom'];
  4. else      $nom="";
  5. if(isset($_POST['prenom']))       $prenom=$_POST['prenom'];
  6. else      $prenom="";
  7. if(isset($_POST['email']))       $email=$_POST['email'];
  8. else      $email="";
  9. // On vérifie si les champs sont vides
  10. if(empty($nom) OR empty($prenom) OR empty($email) )
  11.     {
  12.     echo '<p><font color="red">Attention, veuillez remplir tous les champs !</font></p>';
  13.     }
  14. // on test l'email
  15. elseif (isset($_POST['email']))
  16. {
  17. $_POST['email'] = htmlspecialchars($_POST['email']); // On rend inoffensives les balises HTML que le visiteur a pu rentrer
  18.     if (preg_match("#^[a-z0-9._-]+@[a-z0-9._-]{2,}\.[a-z]{2,4}$#", $_POST['email']))
  19.     {
  20.         echo '<p>L\'adresse ' . $_POST['email'] . ' est <strong>valide</strong> !</p>';
  21.     }
  22.     else
  23.     {
  24.         echo 'L\'adresse ' . $_POST['email'] . ' n\'est pas valide, recommencez !';
  25.     }
  26. }
  27. // Aucun champ n'est vide, on peut enregistrer dans la table
  28. else   
  29.     {
  30.     // connexion à la base
  31. $db = mysql_connect('localhost', 'root', '')  or die('Erreur de connexion '.mysql_error());
  32. // sélection de la base   
  33.     mysql_select_db('PCB',$db)  or die('Erreur de selection '.mysql_error());
  34.     // on regarde si l'url existe déjà
  35.     $sql = "SELECT id FROM contact WHERE email='$email'";
  36.     $req = mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());
  37.    
  38.     // on compte le nombre de résultats
  39.     $res = mysql_num_rows($req);
  40.     if($res!=0)  // l'url existe déjà, on affiche un message d'erreur
  41.         {
  42.     echo '<p><font color="red">Désolé, mais cette URL existe déjà dans notre base.</font></p>';
  43.         }
  44.     else  // L'url n'existe pas, on insère les informations du formulaire dans la table  
  45.     // on écrit la requête sql
  46.  {
  47.     $sql = "INSERT INTO contact(id, nom, prenom, email) VALUES('','$nom','$prenom','$email')";
  48.    
  49.     // on insère les informations du formulaire dans la table
  50.     mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());
  51.     // on affiche le résultat pour le visiteur
  52.     echo '<p>Vos infos on été ajoutées.</p>';
  53.  }
  54.     mysql_close();  // on ferme la connexion
  55.     }
  56. ?>


n°1720926
Melendril
Posté le 21-04-2008 à 12:22:13  profilanswer
 

Salut
 
C'est normal que cela ne marche pas vu qu'un fois passé dans le elsif pour tester le mail, tu ne peux plus passer par le else.
 
Je te conseille de mettre ta vérification d'email dans une fonction qui retourne true or false et d'écrire :
 

Code :
  1. <?php
  2. ...
  3. // On vérifie si les champs sont vides et l'email
  4. if(empty($nom) OR empty($prenom) OR empty($email) OR test_email($email) === false)
  5. {
  6.      echo '<p><font color="red">Attention, veuillez remplir tous les champs avec des valeurs correctes !</font></p>';
  7. }
  8. else 
  9. {
  10.      // connexion à la base
  11. ...
  12. ?>


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  [PHP]probleme vérification e-mail +mysql

 

Sujets relatifs
[PHP]"Antivirus" en PHPConventions pour le codage des classes en PHP
Problème espace design iframeProbleme de caractere spéciaux
Connexion à mysqldebutant,probléme ArrayList
soap et problème de persistence mysqlprobléme affichage d'une longue chaine de caractére
Problème de clic sur controle TEdit 
Plus de sujets relatifs à : [PHP]probleme vérification e-mail +mysql


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR