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

    +158.3

    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
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    33. 33
    34. 34
    35. 35
    36. 36
    37. 37
    38. 38
    39. 39
    40. 40
    41. 41
    42. 42
    43. 43
    44. 44
    45. 45
    46. 46
    47. 47
    48. 48
    49. 49
    50. 50
    51. 51
    52. 52
    global $_PATH;
    
    /* Подключаем конфигурационный файл */
    
    include_once("$_PATH/config.res.php");
    //require_once("DB.php");
    /* Соединение с базой данных */
    
    mysql_connect($db_host,$db_user,$db_pass);
    mysql_select_db($db_name);
    mysql_query("SET NAMES CP1251");
    mysql_set_charset('CP1251');
    
    //$db =&DB::Connect( $dsn, array() );
    //if (PEAR::isError($db)) { die($db->getMessage()); }
    
    /*  создаем один входной массив */
    if($_SERVER['REQUEST_METHOD'] == "POST") $array=$_POST;
    else $array=$_GET;
    
    $query = mysql_query("SELECT id FROM users WHERE login='".$array[name]."'");
    $id = null;
    if($query){ list($id) = mysql_fetch_row($query); }
    
    if($query = mysql_query("SELECT strip_tags FROM modules WHERE class='".$array["class"]."'"))
        {
        list($strt) = mysql_fetch_row($query);
        makearray($strt);
         }
    else
            makearray(0);
    
    /* ставим таймзону */
    date_default_timezone_set("Asia/Krasnoyarsk");
    
    /* собственный обработчик ошибок */
    function ehandler($errno,$errstr,$errfile,$errline){
    global $_PATH;
            if($errno != 8){
            $fp = fopen($_PATH."../www/admin/simple.error.log","a");
            $time = date("j / n / Y H:m:s");
    #        fputs ($fp,"$time - $errno - $errfile - строка: $errline - $errstr\r\n");
     print "$time - $errno - $errfile - строка: $errline - $errstr\r\n";
    
            print "
    
    <span>Oops!</span>";}
    }
    
    /* режим отладки и перегрузка обработчика ошибок*/
        error_reporting(E_ERROR|E_WARNING|E_PARSE);
        set_error_handler(ehandler);

    <span>Oops!</span>

    :D

    Запостил: nolka4, 23 Декабря 2009

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

    • в чем говнокодовость ?
      Ответить
      • 1. Говнокодер долго и упорно пытался изобразить из себя умного ООПшника, но в итоге обломался и решил подключиться к базе по старинке.
        2. Все проверки/экранировки данных при подстановке в запрос идут по пизде. SQL-инъекция во всей красе. Я твой сайт труба шатал. (nolka4, адрес можно?)
        3. Бошки бы отрывал за $array[name]. Трудно, блядь, в апострофы заключить? Похуй, что нотисы тормозят выполнение и срут в лог ошибок, похуй, да? Обмудок.
        4. Зачем автору свой обработчик ошибок, если он всё равно кретин? Стандартный делает то же самое, что его говнообработчик - выводит в браузер место ошибки. Хотя по задумке там должен быть вывод в файл, да. Который открывается и не закрывается, хендлер висит просто так. Остаётся уповать на сборщик мусора Zend.
        Ответить
        • О как тебя то покорежило. Проще надо реагировать. А то потом "вава голова".
          Ответить
          • Да знаешь, бывает наплывами. Когда долго рефакторишь говно, как-то привыкаешь и не грузишься. Когда отходишь и начинаешь писать что-то нормальное, но потом снова в один прекрасный момент сталкиваешься с необходимостью рефакторить говно (вот и сейчас) - испытываешь попоболь от вида любой криворукости, хочется найти автора и пожать его мужественную шею. Занимательная психология вместе с govnokod.ru :3
            Ответить
        • Чет я там ни одного класса/объекта не обнаружил, какой нафик ооп? Афтар о нем и не слышал.
          А вот нащот апострофов +100. БЕСИТБЛЯ!!!!! И error_reporting выключенный на девелоперской машине, говорит о том что девелопер мудак, и лучше бы его папу кастрировали в младенчестве.
          Ответить
          • Он имеет ввиду:
            //$db =&DB::Connect( $dsn, array() );
            //if (PEAR::isError($db)) { die($db->getMessage()); }

            со всем остальным согласен. Адрес сайтега не дам, я сам его уже несколько раз сломал, и залил туда шелл :D
            Ответить
            • Предлагаю ввести баннер, как у W3C.
              Этот сайт содержит Говнокод.
              Взламывать говеные сайты и размещать там этот "медаль".
              Ответить
        • стандартный обработчик ошибок не выводит Oops! :(
          Ответить

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