Я пытаюсь выполнить проверку электронной почты с помощью filter_var. Тем не менее, я не уверен, как предотвратить скрипт от обработки данных формы в моей базе данных, если письмо недействительно.Как предотвратить запуск скрипта, когда электронная почта не проходит filter_var
У меня есть
$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();
}
электронной почты явно исходит из того, что было введено в пользователем и находится в переменной $ _POST. Сценарий ДОЛЖЕН показать, что письмо является допустимым или недействительным, однако STILL обрабатывает скрипт и помещает данные формы в мою базу данных. Я думал, что установка «exit()» будет решением этого или правильным способом обработки, когда это недействительно. Он просто открывает новую страницу, на которой отображается эхо-печать.
Что мне не хватает или что-то не так? В идеале я хотел бы, чтобы поле формы выделило и дало пользователю некоторые указания на то, что они ввели неверно отформатированный адрес электронной почты (хотя я знаю, что это другая тема, а иногда и характерный тип), но я, безусловно, не хотите, чтобы сценарий обрабатывал данные в моей базе данных.
Вы фильтруете дважды? Избавьтесь от второй строки вашего скрипта – Farkie
Ваше условие 'if (false === false)' – Kisaragi
Двойной негатив был сбивчивым, но я думаю, что сейчас понимаю. Это в этом примере кода в W3Schools http://www.w3schools.com/php/filter_validate_email.asp – TecBrat