1. PHP / Говнокод #18896

    +2

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    if(preg_match("/^([a-z0-9_\.-]+)@([a-z0-9_\.-]+)\.([a-z\.]{2,6})$/", urldecode($_POST['email']))){
        $email = urldecode($_POST['email']);
    }else{
        $email = '';
    }
    $email  = mysql_real_escape_string($email);
    $email  = strip_tags($email);

    Код на реальном проекте. Я когда увидел, расплакался от умиления.

    Запостил: Troy, 21 Октября 2015

    Комментарии (31) RSS

    • Такс такс такс што тут у нас, регулярочки для проверки имейла, ахахаха, наканецта.
      Ответить
    • I can't preg_match, I can't string,
      I'm just standing here strip_tags everything.

      http://www.youtube.com/watch?v=qOyF4hR5GoE
      Ответить
    • Ну и по традиции в тредах про валидацию e-mail регекспом принято давать вот эту ссылку: http://www.ex-parrot.com/pdw/Mail-RFC822-Address.html
      Ответить
      • А для соответствия RFC2822 этот код придётся переписывать?
        Ответить
      • Кстати, рекомендую владельцу учёток Лопаты, Кактуса и некоторых религиозно-политических кумиров патриотично настроенных граждан РФ завести ещё и учётку EMailRegExp, с которой во все говнокоды о проверке адресов почты регулярками постить вышеуказанную ссылку.
        Ответить
      • Почему все игнорируют факт того что тамошняя регулярка копипастное и возможно кодогенерированное гогно?

        Если разбить её на блоки типа этого
        [^()<>@,;:\\".\[\] \000-\031]+
        То всё станет проще.
        code reuse, ёпта
        Ответить
        • Ну так там ж написано:
          > I did not write this regular expression by hand. It is generated by the Perl module by concatenating a simpler set of regular expressions that relate directly to the grammar defined in the RFC.

          Все просто внимательно прочитали и не стали повторять написанного
          Ответить
      • Особенно радуют пробелы, табуляции и прочие переводы строк, щедро разбросанные по всей стене текста регулярки. Что-то мне подсказывает, регулярка эта, как и весь RFC 822 описывают несколько не то, что планировалось проверить в исходном говнокоде (и что обычно требуется во вменяемых случаях).
        Ответить
        • К сожалению, сейчас единственный вменяемый способ валидировать адрес электронной почты — это попытаться отправить на него письмо. Априорные способы валидации могут давать сбои.
          Ответить
    • твоё@е-письмо.рф
      твоё@XN----ITBKQKDP2G.XN--P1AI

      P.S. Можете спамить, ящик мой.
      Ответить
      • А если слать на твоё@письмо.рф, дойдёт? Или там только на сайте редирект, а почта разная?
        P.S. Письмо.рф - годный сервис. Зарегистрировался в марте 2012, ни разу спам не получил!
        Ответить
      • Ну и 田中先輩@メール.日本 до кучи.
        Ответить
        • > @
          Фу, зачем?!
          Помню, где-то писали, что надо ещё и кириллическую версию @ сделать, чтобы можно было легко набирать адреса не переключая раскладку.
          Ответить
          • >зачем
            Йепошки же.
            Ответить
          • Нашу, православную собаку!
            Ответить
            • Помнится, советские компьютеры вместо бакса отображали знак ¤ (название которого никто не знал, поэтому его называли солнышком).

              А для @ замены не было.
              Ответить
              • черепашка же.
                Ответить
              • Еще слышал название "подушечка".
                Ответить
              • гоатсе?
                Ответить
                • ¤
                  Аутентичнее.
                  Ответить
                  • Что за дебильный символ? Видел его в верде.
                    Ответить
                    • гоатсе?
                      Ответить
                      • Хуй знает что это, появляется в таблицах если включить невидимые символы.
                        Ответить
                        • Да восславится великий Гугл: https://en.wikipedia.org/wiki/Currency_sign_%28typography%29
                          Ответить
                          • >In Microsoft Word, the currency sign is used to indicate the end of a table cell in some viewing modes.

                            ЧСХ, он занимает место! Невидимый символ занимает место в таблице!
                            Ответить
          • Может быть, запятая подойдёт? Правда, ради неё придётся переписывать все схемы URL...
            Ответить
      • >> твоё@е-письмо.рф
        хуё@моё.рф
        Ответить

    Добавить комментарий