Подскажите как сделать проверку правильно ввёл человек e-mail или нет, дело в том что я сделал добавление в базу данных через форму я понимаю надо через preg_match, но я не знаю как реализовать Вот мой код: Код (Text): <?php mysql_query("SET NAMES utf8"); $result = mysql_query("INSERT INTO `test` (1, 2, 3, 4) VALUES ('$1', '$2', '$3', '$4')"); if ($result == true) { echo 'ОК'; } else { echo 'Ошибка'; } ?>
чувак, просто проверяй что поле непустое и в нем есть @. если делать по правилам — учи RFC про email и делай соответствующие регулярки 99 уровня крутости. потому что надо учитывать нелатинские символы, Punycode, а слева от собаки еще и такой набор допустим: ! # $ % & ' * + - / = ? ^ _ ` { | } ~ меня бесят сервисы которые не пропускают мой емайл вида artoodetoo+this.fkng.com@example.com ведь это валидный емайл и письмо дойдет! Добавлено спустя 51 секунду: filter_var кажется обгаживается с кириллицей. про + не уверен. Добавлено спустя 9 минут 1 секунду: провел испытание filter_var: Код (Text): r2d2@example.com ok r2-d2@example.com ok r2.d2@example.com ok r2d2!@example.com ok r2d2+ololo@example.com ok вася@example.com WRONG r2d2@иванов.рф WRONG r2d2@xn--80adbv1ag.xn--p1ai ok госдеп нас не любит! Добавлено спустя 3 минуты 45 секунд: ты хотябы кнопки сам нажимаешь или тоже просишь кого?
А есть ли смысл проверять регуляркой? Можно попытаться отправить письмо с подтверждением... Ну или вот: https://code.google.com/p/php-smtp-email-validation/ Добавлено спустя 1 минуту 48 секунд: Хотя есть конечно же...
зависит от задачи, конечно, но в общем случае — достаточно самой простой и демократичной проверки — непусто, собака есть. если система подразумевает активацию по емайл, отлично, вот и проверится! а нет — и не надо. пользователь сам себе злобный буратино, если указал выдуманный адрес. не сможет восстановить контроль если что.