1. Поиск говнокода

    Этот поиск практически ничего не может найти! Но вы всё-таки попытайтесь, вдруг повезет.

    Найдено: 98

  2. PHP / Говнокод #9268

    +162

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    if(count($MenuItem)>4) 
    {
    	$CONDITION = $MenuItem[4];
    	if(strlen($CONDITION)>0 && (!eval("return ".$CONDITION.";")))
    		$bSkipMenuItem = true;
    }

    1С-Битрикс: Управление сайтом 11.0.3

    tolic811, 31 Января 2012

    Комментарии (5)
  3. PHP / Говнокод #8722

    +177

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    "
    <td><span>\".setDiskont2(\$data[price]*{$as_Quantity}, $current_site[Skidka], \$data[Discount]).\"</span></td>
    <th></th>
    </tr>
      ")." 
      ".as_if($totalsum+=as_query("SELECT price FROM Data".$as_ObjectID." WHERE Data_ID=$as_ItemID","\$data[price]")*$as_Quantity*$as_Discount,"")."
    ")."

    Оцените.
    Этот кусок кода хранится в поле таблицы бд, в котором хранится кусок шаблона формы корзины интернет-магазина.
    Функция на шестой строке выводит общую сумму заказа при eval.
    У меня ушло более двух часов, чтобы розыскать логику внутри семикратной (! я не шучу) вложенности include_once, чтобы в итоге понять, что запрос который я искал хранится в самой бд, причем не просто храниться, а хранится внутри бд, внутри php который хранится внутри html... Сам Доминик Кобб позавидовал бы степени вложенности моих кошмаров %)

    antongorodezkiy, 04 Декабря 2011

    Комментарии (19)
  4. PHP / Говнокод #7913

    +164

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    if ( $fldType[$i] == 10) { 
          eval("\$fldValue[\$i] = \$f_".$fld[$i].";");
        }
        else if ( $fldType[$i] != 6 )  {
          eval("\$fldValue[\$i] = trim((is_array(\$f_".$fld[$i].")?\$_FILES['f_".$fld[$i]."']['tmp_name']:stripslashes(\$f_".$fld[$i].")));");
        }
          
    		if ($fldType[$i]==8) {
    			eval("if (\$f_".$fld[$i]."_day || \$f_".$fld[$i]."_month || \$f_".$fld[$i]."_year || \$f_".$fld[$i]."_hours || \$f_".$fld[$i]."_minutes || \$f_".$fld[$i]."_seconds) \$fldValue[\$i] = sprintf(\"%04d-%02d-%02d %02d:%02d:%02d\",\$f_".$fld[$i]."_year,\$f_".$fld[$i]."_month,\$f_".$fld[$i]."_day,\$f_".$fld[$i]."_hours,\$f_".$fld[$i]."_minutes,\$f_".$fld[$i]."_seconds);");
    		}

    NetCat, я это даже прокомментировать не могу

    nex2hex, 20 Сентября 2011

    Комментарии (14)
  5. PHP / Говнокод #7826

    +169

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    reset($err_list);
    //создаем все необходимые переменные
    while ($var = each($err_list)) {
        eval('if(!isset($_POST["'.$var['key'].'"])){$_POST["'.$var['key'].'"]="";}');
    }

    ...

    temka, 10 Сентября 2011

    Комментарии (11)
  6. PHP / Говнокод #7588

    +167

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    $used_vars = Array ("s_user","s_roles","s_error");
    
    	for ($i = 0; $i < sizeof($used_vars); $i++) {
    		eval ("unset(\$".$used_vars[$i].");");
    	}

    humbug, 19 Августа 2011

    Комментарии (15)
  7. PHP / Говнокод #7439

    +160

    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
    // File: /controllers/register.php
    
    //......
    $sql = 'INSERT INTO `users` SET `ID`=NULL, `login`="'.mysql_real_escape_string(substr($_POST['login'], 0, 12)).'", `pass`= blah blah blah....';
    //......
    
    
    
    // File: /templates/default/index.tpl
    /*
    //... 
    <td><div>Hello, <b>{LOGIN}</b></div><!---- blah blah blah ---><div>Server time: <?php echo getCurrentTime();?></div>
    //
    */
    
    
    //File: /index.php
    
    //......
    $sql = 'SELECT * FROM `users` WHERE `id`=........';
    $data = SYS::$db->getDataRow($sql);
    if(sizeof($data)>0) {
          showTeplate(TEMPLATE_NAME, 'index', $data);
    }
    //......
    
    //Function showTeplate();
    
    function showTeplate($tpl_name, $file_name, $data) {
           $template_code = file_get_contents(TPL_PATH.'/'.$tpl_name.'/'.$file_name.'.'.TPL_EXT);
           foreach($data as $name=>$value) {
                  $template_code = str_replace('{'.strtoupper($name).'}', $value, $template_code);
           }
           
          //......
           eval($template_code);
          //......
    
    }

    Внимание, загадка! Найти уязвимость.

    jokz, 04 Августа 2011

    Комментарии (24)
  8. PHP / Говнокод #7322

    +166

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    for($i=0,$n=count($vars);$i<$n;$i++){
    
        eval(' $'.$vars[$i].'=isset($_POST["'.$vars[$i].'"])? addslashes(trim($_POST["'.$vars[$i].'"])) : ""; ');
    
      }

    В недрах самописной crm)

    antongorodezkiy, 23 Июля 2011

    Комментарии (11)
  9. PHP / Говнокод #7212

    +170

    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
    function load_class($module, $class) {
      $class_inc = strtoupper($class) . "_INC";
      $file_inc = $class  . ".inc";
    
      if (!file_exists(MODROOT.$module."/lib/".$class.".inc")) {
         echo "ERROR Loading Class: $class<BR>";
         echo "      Loading Module: $module<BR>";
    //     echo MODROOT.$module."/lib/".$class.".inc";
         exit;
      }
      else {
      $load_class = "if (!defined(\"".$class_inc."\")) {";
      $load_class .= "include(\"".MODROOT.$module."/lib/". $file_inc ."\");";
      $load_class .= "define(\"".$class_inc."\",\"1\");";
      $load_class .= "}";
       }
      return $load_class;
    }
    
    // вызов
    eval(load_class("module", "className"));

    Fffuf

    sl1p, 08 Июля 2011

    Комментарии (12)
  10. PHP / Говнокод #7038

    +155

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    // Функция подключения файлов шаблонов -----------------------------------------------------------------
        function tpl_include($filepath, $title = '', $content = '') {
    
            global $lang, $lang_array;
            $tpl_body = str_replace("\n", '', file_get_contents($filepath));
            $tpl_body = preg_replace('#\{loop (.*?)\}(.*?)\{\/loop\}#i', "\nEOL;\nforeach (\\1 as \$var=>\$val) echo <<<EOL\n\\2\nEOL;\necho <<<EOL\n", $tpl_body);
            $tpl_body = preg_replace('#\{const (.*?)\}#i', "\nEOL;\necho \\1;\necho <<<EOL\n", $tpl_body);
            $to_eval = "echo <<<EOL\n".$tpl_body."\nEOL;\n";
            eval($to_eval);
    
        }
        // -----------------------------------------------------------------------------------------------------

    По следам http://govnokod.ru/5658.
    Шаблонизатор этот жив и кочует из проекта в проект.
    Можно ссылаться на переменные из массива $lang, где хранится локализация и на $title и $content. Вот так - {$title}.
    Можно ссылаться на любые константы. Например, {const ROOT_PATH}.
    Можно делать цикл {loop $array}{/loop}, где внутри доступны переменные {$var} и {$val}.
    Полностью избавляет от шорт-тегов, которые скоро уже и уберут из похапе.
    Работает лишь чуть медленнее include с шорт-тегами (0.8 против 1.2 на 10к прогонов) и, разумеется, быстрее Смарти.
    При необходимости в каком-то проекте в чем-то еще - можно легко добавить.
    В общем - изящное вонючее решение.

    7ion, 23 Июня 2011

    Комментарии (11)
  11. PHP / Говнокод #7014

    +150

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    $black = "eval|file_get_contents|mysql_(.*?)|include|require|readfile|show_source|highlight|import_request_variables|extract|parse_str|assert|passthru|exec|system|shell_exec|proc_open|fopen|echo";
    
    if(preg_match("#\<\?(.*?)($black)(.*?)\?\>#i", $template)){
    exit ("1");
    break;
    }

    substr, 20 Июня 2011

    Комментарии (57)