Vérif format mail

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

  • Votes
  • Date
  • Date décroissante
  1. Modérateur
    Salut,

    Regarde ceci:
    http://www.commentcamarche.net/faq/sujet 10462 securiser son code php#valider les donnees transmises par url ou par formulaire
    1. euh je n'y comprends absolument rien...

      Ah oui j'ai oublié de préciser je suis une bille en php
  2. Modérateur
    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: 
    
    } 
    ?>
    1. euh après avoir mis ce que tu m'as donnée même une adresse valide ne passe plus :^)
    2. Modérateur
      @loute08Oh pardon, c'est if (!email)
      J'ai oublié le point d'exclamation.
    3. @kilianben y a pas de controle parce que ça accepte même quand y a pas de .fr ou .com