J'essaie de faire passer les emails en validation en utilisant filter_var. Cependant, je ne suis pas sûr comment empêcher le manuscrit de traiter les données de forme à ma base de données si l'email n'est pas valide.Comment empêcher l'exécution d'un script lorsque le courrier électronique ne passe pas filter_var
Je
$email = $_POST['email'];
$email = filter_var($email, FILTER_SANITIZE_EMAIL);
if (!filter_var($email, FILTER_VALIDATE_EMAIL) === false) {
echo("$email is a valid email address");
} else {
echo("$email is not a valid email address");
exit();
}
l'email vient évidemment de ce qui a été entré par l'utilisateur et est dans la variable $ _POST. Le script indique que le courriel est valide ou invalide, mais il traite TOUJOURS le script et place les données du formulaire dans ma base de données. Je pensais que mettre "exit()" serait la solution à cela, ou la bonne façon de gérer quand ce n'est pas valide. Il ouvre simplement une nouvelle page où l'impression d'écho montre.
Qu'est-ce qui me manque ou qui ne va pas? Idéalement, je voudrais que le champ de formulaire soit surligné et donne à l'utilisateur une indication qu'il a entré une adresse électronique incorrectement formatée (bien que je sache que c'est un sujet différent et quelque chose qui cloche), mais je fais certainement Je ne veux pas permettre au script de traiter les données dans ma base de données.
Vous filtrez deux fois? Débarrassez-vous de la 2ème ligne de votre script – Farkie
Votre condition est 'if (false === false)' – Kisaragi
Le double négatif était confus, mais je pense que je le comprends maintenant. C'est dans cet exemple de code à W3Schools http://www.w3schools.com/php/filter_validate_email.asp – TecBrat