За последние 24 часа нас посетили 17587 программистов и 1587 роботов. Сейчас ищут 1432 программиста ...

Проверка email

Тема в разделе "PHP для новичков", создана пользователем Svoloch_196, 29 июл 2014.

  1. Svoloch_196

    Svoloch_196 Активный пользователь

    С нами с:
    28 янв 2012
    Сообщения:
    227
    Симпатии:
    0
    Подскажите как сделать проверку правильно ввёл человек e-mail или нет, дело в том что я сделал добавление в базу данных через форму я понимаю надо через preg_match, но я не знаю как реализовать

    Вот мой код:
    Код (Text):
    1.  
    2. <?php
    3. mysql_query("SET NAMES utf8");
    4. $result = mysql_query("INSERT INTO `test` (1, 2, 3, 4) VALUES ('$1', '$2', '$3', '$4')");
    5.  
    6. if ($result == true) {
    7. echo 'ОК';
    8. }
    9. else {
    10. echo 'Ошибка';
    11. }
    12. ?>
     
  2. [vs]

    [vs] Суперстар
    Команда форума Модератор

    С нами с:
    27 сен 2007
    Сообщения:
    10.559
    Симпатии:
    632
  3. Svoloch_196

    Svoloch_196 Активный пользователь

    С нами с:
    28 янв 2012
    Сообщения:
    227
    Симпатии:
    0
    Это точно не для меня, я вот не знаю как сделать что бы перед чем добавить в базу он проверял e-mail
     
  4. [vs]

    [vs] Суперстар
    Команда форума Модератор

    С нами с:
    27 сен 2007
    Сообщения:
    10.559
    Симпатии:
    632
    Код (Text):
    1. if (filter_var($email, FILTER_VALIDATE_EMAIL)) {
    2.   echo 'адрес верный';
    3. }
     
  5. Svoloch_196

    Svoloch_196 Активный пользователь

    С нами с:
    28 янв 2012
    Сообщения:
    227
    Симпатии:
    0
    Если не трудно подскажи в какое место добавить данный код что бы он делал проверку
     
  6. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.108
    Симпатии:
    1.243
    Адрес:
    там-сям
    чувак, просто проверяй что поле непустое и в нем есть @.
    если делать по правилам — учи RFC про email и делай соответствующие регулярки 99 уровня крутости. потому что надо учитывать нелатинские символы, Punycode, а слева от собаки еще и такой набор допустим: ! # $ % & ' * + - / = ? ^ _ ` { | } ~

    меня бесят сервисы которые не пропускают мой емайл вида artoodetoo+this.fkng.com@example.com ведь это валидный емайл и письмо дойдет!

    Добавлено спустя 51 секунду:
    filter_var кажется обгаживается с кириллицей. про + не уверен.

    Добавлено спустя 9 минут 1 секунду:
    провел испытание filter_var:
    Код (Text):
    1. r2d2@example.com ok
    2. r2-d2@example.com ok
    3. r2.d2@example.com ok
    4. r2d2!@example.com ok
    5. r2d2+ololo@example.com ok
    6. вася@example.com WRONG
    7. r2d2@иванов.рф WRONG
    8. r2d2@xn--80adbv1ag.xn--p1ai ok
    госдеп нас не любит!

    Добавлено спустя 3 минуты 45 секунд:
    ты хотябы кнопки сам нажимаешь или тоже просишь кого?
    [​IMG]
     
  7. smitt

    smitt Старожил

    С нами с:
    3 янв 2012
    Сообщения:
    3.166
    Симпатии:
    65
    Мы живём в самой прекрасной стране на свете, а все остальные страны нам завидуют. (c) :)
     
  8. dapperkop

    dapperkop Активный пользователь

    С нами с:
    26 сен 2013
    Сообщения:
    890
    Симпатии:
    0
    А есть ли смысл проверять регуляркой? Можно попытаться отправить письмо с подтверждением... Ну или вот: https://code.google.com/p/php-smtp-email-validation/

    Добавлено спустя 1 минуту 48 секунд:
    Хотя есть конечно же...
     
  9. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.108
    Симпатии:
    1.243
    Адрес:
    там-сям
    зависит от задачи, конечно, но в общем случае — достаточно самой простой и демократичной проверки — непусто, собака есть.
    если система подразумевает активацию по емайл, отлично, вот и проверится! а нет — и не надо.
    пользователь сам себе злобный буратино, если указал выдуманный адрес. не сможет восстановить контроль если что.