J'ai un formulaire qui affiche les variables dans un script de traitement PHP.PHP si l'instruction ne fonctionne pas comme prévu avec filter_var
Avant le script de traitement commence, je voudrais désinfectez les variables affichées:
$Contact_Name = filter_var($_POST['contactName'], FILTER_SANITIZE_STRING);
$Company = filter_var($_POST['company'], FILTER_SANITIZE_STRING);
$Telephone = filter_var($_POST['telephone'],FILTER_SANITIZE_NUMBER_INT);
Jusqu'à présent. Tellement bon. Mais la désinfection et la validation du courrier électronique sont très pénibles.
$Email = $_POST['email'];
$Sanitised_Email = filter_var($Email, FILTER_SANITIZE_EMAIL);
$Email_is_valid = filter_var($Email, FILTER_VALIDATE_EMAIL);
Si $Sanitised_Email
n'est pas la même chose que $Email
, je veux revenir à la page du formulaire:
if ($Sanitised_Email != $Email) {
header('Location: http://'.$_SERVER['HTTP_HOST'].'/form.php');
}
Si $Email_is_valid
est false
, je veux revenir à la page du formulaire:
if ($Email_is_valid == FALSE) {
header('Location: http://'.$_SERVER['HTTP_HOST'].'/form.php');
}
Aucune de ces deux instructions if
ne fonctionne lorsque je saisis un e-mail non valide et nécessitant une désinfection comme:
i.am.(totally)[email protected]
Qu'est-ce que je fais mal? Ai-je foiré ma syntaxe quelque part?
Cela ne résoudra pas votre problème, mais vous devriez envisager d'utiliser [ '' == au lieu de '! ! = '] (http://php.net/manual/fr/language.operators.comparison.php) –
Pourquoi avez-vous besoin de désinfecter au lieu de simplement vérifier si l'adresse fournie est valide? – PeeHaa
Une autre remarque: pensez à renvoyer un message d'erreur au formulaire plutôt qu'à une redirection de plain-jane (ce qui laisse probablement l'utilisateur se demander pourquoi le formulaire n'a pas été envoyé). Vous pouvez améliorer votre méthode actuelle avec un paramètre url simple qui déclenche un affichage d'erreur sur le formulaire, par exemple. –