Всем здравствуйте!
Помогите, пожалуйста, разобраться с корректной валидацией email.
Есть HTML форма (в примере представлена часть формы для email) :
<label>E-mail:</label>
<input id="input5" type="text" size="25" name="email" value= "<?php echo $email ?>">
<span class="error">* <?php if(isset($errors['email'])) { echo $errors['email']; }?></span>
<br><br>
, которая обрабатывается PHP.
// пример обработки поля email. другие поля обрабатываются таким же образом:
...
if (empty($_POST["email"])) {
$errors['email'] = "Не заполнено обязательное поле";
} else {
$email = test_input($_POST["email"]);
}
...
Понимаю, что надо использовать FILTER_VALIDATE_EMAIL , но куда именно нужно вписать "образец", по которому будет происходить дальнейшее сравнение внесенных в форму данных?
Есть мысль оформить общий подход к валидации email так:1 вариант:
Если в данное поле формы было что-то введено if(isset($_POST["email"])), то начинаем осуществлять проверку на корректность вносимых данных, а именно:
использовать if(!filter_var($_POST['email'], FILTER_VALIDATE_EMAIL)).
Если введенные данные корректны (то есть соответствуют изначально заданному шаблону, например $var = "anyword@domain.ru";), то продолжаем работу по другим полям формы.
А Если введенные данные некорректны, то отправляем значение в массив ошибок ($errors) и выводим предупреждение об этом ( $errors['email'] = "Не валидный email";). А если никакие данные не были введены, то "пустое" значение тоже отправляется в этот же массив ошибок ($errors) , для него установлено уже свое сообщение ($errors['email'] = "Не заполнено обязательное поле";).
2 вариант:
Если было отправлено
пустое поле email, то присваеваем полученное значение в массив ошибок и выдаем сообщение "Не заполнено обязательное поле" (как это есть в части представленного кода), иначе если поле email было не пустым (какие-то данные все же были введены), то начинаем проверку: Если внесенные данные некорректны (то есть соответствуют изначально заданному шаблону, например $var = "anyword@domain.ru";), значит полученный результат отправлять в массив ошибок с выдачей сообщения "Не валидный email". Иначе (если полученный результат корректен), то продолжаем двигаться по проверке других форм.
Самый главный вопрос:
в каком месте кода необходимо задать этот шаблон/образец ($var = "anyword@domain.ru),по которому будет происходить сравнение введенной почты на ее корректность; чтобы все работало так как нужно, и чтоб этот образец нигде в браузере не всплывал ?
Заранее благодарю за помощь!