Vérif format mail

loute08 Messages postés 230 Statut Membre -  
loute08 Messages postés 230 Statut Membre -
Bonjour,

J'aimerais pouvoir vérifier le bon format d'une adresse mail avant de l'intégrer à ma BDD

pouvez-vous m'aider ?

Voici mon code :

<?php
mysql_connect("localhost", "root", ""); //On remplace les information par la vraie bdd
mysql_select_db("contact_site");

switch ($_POST['inscriptiondesinscription']) {

case 'inscription':
mysql_query("INSERT INTO newsletter VALUES('". $_POST['email'] ."')");
$message='Vous allez désormais recevoir notre Newsletter à ladresse '. $_POST['email'];
break;

case 'desinscription':
mysql_query("DELETE FROM newsletter WHERE email='". $_POST['email'] ."'");
$message='Votre désinscription a bien été prise en compte';
break;

default:

}
?>
Configuration: Windows XP
Internet Explorer 7.0

2 réponses

  1. kilian Messages postés 8675 Date d'inscription   Statut Modérateur Dernière intervention   1 526
     
    Salut,

    Regarde ceci:
    http://www.commentcamarche.net/faq/sujet 10462 securiser son code php#valider les donnees transmises par url ou par formulaire
    0
    1. loute08 Messages postés 230 Statut Membre 1
       
      euh je n'y comprends absolument rien...

      Ah oui j'ai oublié de préciser je suis une bille en php
      0
  2. kilian Messages postés 8675 Date d'inscription   Statut Modérateur Dernière intervention   1 526
     
    En fait en utilisant la fonction filter_input, tu peux t'assurer que la données rentrée par l'utilisateur en utilisant un formulaire correspond bien au format que tu veux, en l'occurence ici: une adresse email.

    En faisant
    $email = filter_input(INPUT_POST, 'email', FILTER_VALIDATE_EMAIL);
    if($email){
        //L'adresse email entrée possède bien un format d'adresse mail
    }

    Tu t'assures que $_POST['email'] est bien une adresse email (au niveau de la syntaxe).

    Donc dans ton code ça donnerait:

    <?php 
    
    $email = filter_input(INPUT_POST, 'email', FILTER_VALIDATE_EMAIL);
    if($email){
        die("L'adresse email n'est pas valide, arrêt du traitement");
    }
    
    mysql_connect("localhost", "root", ""); //On remplace les information par la vraie bdd 
    mysql_select_db("contact_site"); 
    
    switch ($_POST['inscriptiondesinscription']) { 
    
    case 'inscription': 
    mysql_query("INSERT INTO newsletter VALUES('". $_POST['email'] ."')"); 
    $message='Vous allez désormais recevoir notre Newsletter à ladresse '. $_POST['email']; 
    break; 
    
    case 'desinscription': 
    mysql_query("DELETE FROM newsletter WHERE email='". $_POST['email'] ."'"); 
    $message='Votre désinscription a bien été prise en compte'; 
    break; 
    
    default: 
    
    } 
    ?>
    0
    1. loute08 Messages postés 230 Statut Membre 1
       
      euh après avoir mis ce que tu m'as donnée même une adresse valide ne passe plus :^)
      0
      1. kilian Messages postés 8675 Date d'inscription   Statut Modérateur Dernière intervention   1 526 > loute08 Messages postés 230 Statut Membre
         
        Oh pardon, c'est if (!email)
        J'ai oublié le point d'exclamation.
        0
      2. loute08 Messages postés 230 Statut Membre 1 > kilian Messages postés 8675 Date d'inscription   Statut Modérateur Dernière intervention  
         
        ça n'a rien changé... :o(
        0
      3. kilian Messages postés 8675 Date d'inscription   Statut Modérateur Dernière intervention   1 526 > loute08 Messages postés 230 Statut Membre
         
        Tu vois quoi?
        0
      4. loute08 Messages postés 230 Statut Membre 1 > kilian Messages postés 8675 Date d'inscription   Statut Modérateur Dernière intervention  
         
        ben y a pas de controle parce que ça accepte même quand y a pas de .fr ou .com
        0