Ich versuche, die E-Mails mit filter_var validieren zu lassen. Ich bin mir jedoch nicht sicher, wie ich verhindern kann, dass das Skript die Formulardaten in meine Datenbank verarbeitet, wenn die E-Mail nicht gültig ist.So verhindern Sie, dass ein Skript ausgeführt wird, wenn die E-Mail nicht gefiltert wird filter_var
Ich habe
$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();
}
die E-Mail offensichtlich herkommt, was vom Anwender eingegeben in und in dem $ _POST Variable. Das Skript zeigt die E-Mail als gültig oder ungültig an, aber sie verarbeitet das Skript NOCH und speichert die Formulardaten in meiner Datenbank. Ich dachte, dass das Setzen von "exit()" die Lösung dafür sein würde, oder die richtige Art zu handhaben, wenn es nicht gültig ist. Es öffnet einfach eine neue Seite, auf der der Echo-Druck angezeigt wird.
Was vermisse ich oder mache ich falsch? Idealerweise möchte ich das Formularfeld hervorheben und dem Benutzer einige Hinweise geben, dass sie in einer falsch formatierten E-Mail-Adresse eingegeben haben (obwohl ich weiß, dass das ein anderes Thema ist und ein bisschen Schnickschnack), aber ich mache es auf jeden Fall Ich möchte nicht zulassen, dass das Skript die Daten in meine Datenbank verarbeitet.
Sie filtern zweimal? Befreie die 2. Zeile deines Skripts – Farkie
Deine Bedingung ist 'if (false === false)' – Kisaragi
Das doppelte Negativ war verwirrend, aber ich denke ich verstehe es jetzt. Es ist in diesem Beispielcode bei W3Schools http://www.w3schools.com/php/filter_validate_email.asp – TecBrat