Добрый день! Пытаюсь создать веб страницу для проверки правильности введенного e-mail. Попробовал использовать <input type=email>. Сделал все в одном файле. Вот код между тегами body <input type="email" name="email" method="post"> <input type="button" value="Проверить"> <?php function is_email($email) { if (! preg_match( '/^[A-Za-z0-9!#$%&\'*+-/=?^_`{|}~]+@[A-Za-z0-9-]+(\.[A-Za-z0-9-]+)+[A-Za-z]$/', $email)) { return false; } else { return true;} } if (is_email($email)) echo "E-mail правильный"; else echo "Введите правильный e-mail"; ?> Понимаю, что что-то не так делаю, но не могу понять что именно. Где связь между введенным email и переменной $email? Как то же в эту переменную должен записываться введенный email?
Спасибо всем за помощь! Про русскоязычные адреса потом подумаю. Проблему решил с помощью filter_var. Вот, что получилось: 1)HTML файл (email.html) <body> <form method='POST'> <input type="email" name="email" method="post"> <input type="submit" value="Проверить"> </form> </body> 2) PHP файл <body> <?php filter_var(, FILTER_VALIDATE_EMAIL)){ echo "всё круто!"; } else{ echo "Всё печально"; } } ?> </body> Не думаю, что будет большая проблема включения раскладки для русскоязычных адресов. Мне было непонятно, как написать сам код. Еще раз спасибо!
До сих пор ни разу не встречал на практике Добавлено спустя 55 секунд: Даже работав с огромными базами е-мейлов, всё равно не видел ни разу адресов использующих кириллицу
вариант хороший, но есть одно НО(!) Я бы у себя на сайте не стал использовать этот фильтр, т.к. он хоть и проверяет полностью допустимость всех символов, но вот с точки зрения "человечности" не совсем иногда эстетично. Например, в имени допускается использовать всё что угодно, в том числе и "собаку" (кроме разделителя)
Если на то пошло, то хер с этой проверкой пусть сами думают, что пишут. Если e-mail не существует и на него не удалось отправить сообщение, то ставим в поле email => null. Все null пишем в лог и посылаем на 3 буквы. И срать на проверку. igordata, перешел =)
чтобы слать что-то на имеил, надо бы получить согласие. т.е. послать туда письмо и получить подтверждение. Вот и проверка.
какие ресурсы? о_О вы рассылаете миллиарды сообщений? кто-то рассылает миллиарды сообщений? тема экономии ресурсов компьютеров должна быть оставлена в прошлом, ибо компьютеры призваны экономить главный ресурс - человеческое время. в том числе время разработки. =)
на стороне юзера надо проверять, чтобы при вводе имейла сразу подсветить, если есть косяк. в HTML5 Вроде как есть поле для ввода мыла. так что задача тривиальна.
привычка осталась Хотя с другой стороны согласен.. тратиться куча времени чтобы организовать проверку валидности мыла, а потом куча напоминалок пользователю что не так ввёл, что вообще не ввёл и т.п. Неожиданно для себя и сейчас поменял отношение к этому, igordata, и соглашусь с тобой... Да пофик какой адрес пользователь ввёл, ушло на него подтверждение, не пришло обратно, ну значит не судьба. Куда проще
Код (PHP): if(!/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,4})+$/.test(email1)) Вот такую шляпу сделать на js. И просто будет зависон когда сделать так h;'kj;lsdjkjfd;khj;fdkhgfdhgsdgh Тупо зависнет браузер =), проверено.