Valider adresse courriel dans formulaire PHP

Résolu/Fermé
GrifOli Messages postés 2111 Date d'inscription samedi 28 juin 2008 Statut Membre Dernière intervention 26 mars 2020 - Modifié par crapoulou le 13/07/2016 à 07:50
GrifOli Messages postés 2111 Date d'inscription samedi 28 juin 2008 Statut Membre Dernière intervention 26 mars 2020 - 25 mars 2011 à 17:00
Bonjour,

J'ai créé un formulaire dans lequel la personne doit écrire son adresse courriel. Une fois que la personne appuie sur "Envoyer", le formulaire est envoyé vers une adresse courriel. Mon code initial vérifiait que "quelque chose" avait bien été entré dans la case "Courriel".

Voici ce code:

<?php

if (strlen($_POST['courriel']) > 0)
{ $courriel = TRUE;
}
else
{ $courriel = FALSE; 
}

if ($courriel)
{ $msg = "À ajouter à la liste de distribution des bulletins: {$_POST['courriel']}\n";

  $recipient = "mon@adresse.com";
  $subject = "Courriel pour liste de distribution"; 
  $mailheaders = "Bulletin BMG\n";
  $mailheaders .= "Reply-To: {$_POST['courriel']}\n\n"; 
  
  mail($recipient, $subject, $msg, $mailheaders); 
  
echo "<p><b><font color='#93FF23'>Merci, votre adresse courriel a bien été transmise!</font></b></p>";
}
else
{ echo "<p><b><font color='#93FF23'>Vous avez oublié d'indiquer votre adresse courriel.</font></b></p>";
}

?>


Maintenant, j'aimerais que mon code vérifie si l'adresse courriel est valide avant l'envoie du formulaire. J'ai modifié mon code, mais peu importe ce que la personne écrit, ça envoie quand même le formulaire. Voici mon code modifié:

<?php

if(filter_var($courriel, FILTER_VALIDATE_EMAIL) === TRUE)
{ $courriel = TRUE;
}
else
{ $courriel = FALSE;
}

if ($courriel)
{ $msg = "À ajouter à la liste de distribution des bulletins: {$_POST['courriel']}\n";

  $recipient = "mon@adresse.com";
  $subject = "Courriel pour liste de distribution"; 
  $mailheaders = "Bulletin BMG\n";
  $mailheaders .= "Reply-To: {$_POST['courriel']}\n\n"; 
  
  mail($recipient, $subject, $msg, $mailheaders); 
  
echo "<p><b><font color='#93FF23'>Merci, votre adresse courriel a bien été transmise!</font></b></p>";
}
else
{ echo "<p><b><font color='#93FF23'>Vous devez entrer une adresse courriel valide.</font></b></p>";
}

?>


Je ne voudrais pas que le formulaire s'envoie si l'adresse courriel n'est pas valide... où est l'erreur dans mon code?

Merci!
A voir également:

4 réponses

Jug4tsu Messages postés 56 Date d'inscription lundi 13 septembre 2010 Statut Membre Dernière intervention 1 septembre 2011 13
Modifié par crapoulou le 13/07/2016 à 07:50
Dans ton filter_var, ce serait pas plutôt le $_POST qui devrait être testé ?
Après ton test, vérifie ce que contient $courriel.

Du genre :
$courriel = filter_var($_POST['courriel'], FILTER_VALIDATE_EMAIL) !== false ? true : false;
var_dump($courriel);
3
GrifOli Messages postés 2111 Date d'inscription samedi 28 juin 2008 Statut Membre Dernière intervention 26 mars 2020 591
Modifié par crapoulou le 13/07/2016 à 07:51
Merci pour ta réponse. J'ai modifié le code et ça fonctionne bien. Cependant, j'ai un petit mot qui s'affiche au-dessus de mon message;

bool(false)

Vous devez entrer une adresse courriel valide.


Comment faire pour ne pas que "bool(false)" s'affiche? Revoici mon code:

<?php

$courriel = filter_var($_POST['courriel'], FILTER_VALIDATE_EMAIL) !== false ? true : false;
var_dump($courriel);

if ($courriel)
{ $msg = "À ajouter à la liste de distribution des bulletins: {$_POST['courriel']}\n";

  $recipient = "mon@adresse.com";
  $subject = "Courriel pour liste de distribution"; 
  $mailheaders = "Bulletin BMG\n";
  $mailheaders .= "Reply-To: {$_POST['courriel']}\n\n"; 
  
  mail($recipient, $subject, $msg, $mailheaders); 
  
echo "<p><b><font color='#93FF23'>Merci, votre adresse courriel a bien été transmise!</font></b></p>";
}
else
{ echo "<p><b><font color='#93FF23'>Vous devez entrer une adresse courriel valide.</font></b></p>";
}

?>
0
Jug4tsu Messages postés 56 Date d'inscription lundi 13 septembre 2010 Statut Membre Dernière intervention 1 septembre 2011 13
25 mars 2011 à 16:57
Var_dump permet d'afficher le type et la valeur d'une variable. C'est pratique quand tu débugges.

Vu que là ça marche, vire le var_dump($courriel); ;)
0
GrifOli Messages postés 2111 Date d'inscription samedi 28 juin 2008 Statut Membre Dernière intervention 26 mars 2020 591
25 mars 2011 à 17:00
Merci beaucoup!! :)
0