Intereting Posts
Включить проверку клиента Yii Вывод из shell_exec (), содержащий акцентированные charcters, искалеченные получение ошибки при чтении simpleDomObject Как создать пользовательскую страницу динамически после регистрации пользователя Связать функцию регулярного выражения PHP Daring Fireball Method отправить товар с помощью сеанса с добавлением в корзину Как использовать хранимые процедуры с Symfony и Doctrine Как преобразовать файл .doc в .pdf без отслеживания изменений, используя запись из командной строки? с использованием codeigniter Понимание форм саморегуляции Удалить строку из базы данных, если изображение не на сервере Комбинация / Конкатенация MP3-файлов на сервере с использованием PHP Заголовок Контент не работает ORA-01036: имя / номер незаконной переменной при вызове хранимой функции Отправить переменную JavaScript в PHP Рекомендация для процедуры разбивки на страницы AJAX PHP

Ошибка электронной почты php filter_var

я использую функцию filter_var php для проверки адреса электронной почты, когда пользователь регистрируется на моем сайте

поэтому я использую эту форму кода сообщения:

$email = filter_var($_POST['email'], FILTER_VALIDATE_EMAIL); 

то позже я делаю:

 if(!$email) { // return to the form } else { // send registration info } 

теперь, когда я var_dump ($ email)

вывод:

 string(23) "user."name"@example.com" 

Я хотел бы знать, почему это не возвращает false, я думаю, что двойные кавычки неприемлемы, почему PHP говорит, что это действительно?

Это действительный адрес электронной почты :

Строка с кавычками может существовать как объект, разделенный точками в локальной части, или может существовать, когда внешние цитаты являются внешними символами локальной части (например, abc. «Defghi» .xyz @ example.com или «abcdefghixyz» @ example.com разрешены. abc "defghi" xyz@example.com не является, а также abc \ "def \" ghi@example.com).

У меня была та же проблема (см. Dalmas о том, почему она действительна), и вот как я ее исправил:

 filter_var($email, FILTER_SANITIZE_EMAIL); 

например:

 $email = 'user."name"@example.com'; $email = filter_var($email, FILTER_SANITIZE_EMAIL); 

выведет:

 string(21) "user.name@example.com" 

Затем вы можете проверить электронную почту, используя свою проверку.

вы можете получить дополнительную информацию на сайте php