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

    +44

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    function db_connect($serverMySql, $db_log, $db_pass) //create connection
    {
        $r = mysql_connect($serverMySql, $db_log, $db_pass);
        return $r;
    }
    //....
    // страницы
    if (empty($_GET["p"])) {
        $_GET["p"] = "1";
    }
    $p = $_GET["p"];
    
    // защита от ввода  
    if (preg_match("/[%a-z_@.,^=:;Р°-СЏ\"*()&$#в„–+\-!?<>\~`|[{}\]]/i", $p)) {
        die(header("Location:sluch_list.php"));
    }

    http://hashcode.ru/questions/163555/php-%D0%B2%D1%8B%D0%B2%D0%BE%D0%B4-%D1%84%D1%80%D0%B0%D0%B7-%D0%BF%D0%BE-%D1%80%D0%B5%D0%B9%D1%82%D0%B8%D0%BD%D0% B3%D1%83

    Запостил: nolka4, 14 Ноября 2012

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

    • // защита от ввода
      if (preg_match("/./", $p)) {
          die(header("Location:sluch_list.php"));
      }
      Ответить
      • Мне кажется или автор хотел написать /[^0-9]/?
        Ответить
    • Чем Џ-то не угодило.
      Ответить
      • И кстати "в" тоже.

        P.S. А, понял, там были символы в utf-8, а ОП или изначальный автор скопастил не в той кодировке.

        P.P.S.
        $ echo "Р°-СЏ" | iconv -f utf-8 -t cp1251
        а-я
        Ответить
        • Вот так всегда и бывает. Одна сплошная беда с этими национальными кодировками.
          Ответить
          • Это еще не самый худший вариант. Я как-то скачал торент с музыкой, в котором все cue-shitы были сохранены сначала в cp1252, потом прочитаны как cp1251 и сконвертированы в utf8. Вообще говоря, подобная херня есть почти в половине раздач, а во второй половине вместо тэгов просто ерудна.
            Ответить
            • Видели мы теги и в KOI8 и в Windows-1251. Это не самое плохое. Теги хоть автоматом конвертировать можно.
              Ответить
            • Проблема однобайтных кодировок стоит чуть шире. Русский текст и его метаморфозы - мелочи, в конце концов, можно и перекодировать, действительно.
              Дело в том (на правах КО), что вторая половина кодовой таблицы отдана под национальные символы. Под [b]любые/b] национальные символы. Берём классическую песню, которая в итальянском называется La donna è mobile. Беда спряталась в символе "è". Его в русской половине нет ни в кои-то вин-досе. ЕМНИМП, на месте этого символа стоит "и". Часто текстовые редакторы честно предупреждают и отбрасывают "хвостик", оставляя "e". Но обычно при копировании с/на FAT, файловая система распоряжается именами вульгарно и как ей вздумается. Ничего про итальянский она не знает, потому спокойно считает это "и". В итоге получаем La donna и mobile (Результатов: примерно 76 200). Подобную ситуацию можно наблюдать во многих испано-италоязычных текстах в однобайтной кодировке, в т. ч. и в инторнет-страницах.
              Вывод один. Однобайтные кодировки должны умереть.
              Ответить
              • показать все, что скрытоutf-8 ещё может чуть-чуть пожить.
                Ответить
                • На правах кепа - она multibute.
                  Ответить
                  • * myltibyte
                    изобретено корейцами за миской хотдогов
                    Ответить
                  • utf-8 разве не 8-мибитная (следовательно однобайтная)?

                    upd: Почитал, разобрался, спасибо за просвящение.
                    Ответить
                    • Один символ может быть представлен с помощью от одного до шести байтов. Так что нет, не однобайтная.
                      Ответить
                      • Жил отважный капитан, он объездил много стран. И не раз он бороздил океан...

                        > upd: Почитал, разобрался, спасибо за просвящение.
                        Ответить
                    • > спасибо за просвящение
                      Нам нисколько не жалко делиться нашей святостью
                      Ответить
              • Невероятные приключения итальянских файлов на русской FAT
                Ответить
              • А еще, помнится, при записи на CD имена файлов обрезались по букве "л". Получалось что-то типа:
                - Звезда по имени со
                - Это не
                - Черный а
                - Пос
                Не знаю, связано ли это с программой или с самим форматом фс; и имеет ли значение, что в коде для буквы л присутствует то символ ";", то ли "<"...
                Ответить
    • sluch_list.php...
      Ответить
    • обыкновенное говно пхп-джуника.
      Ответить

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