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

    +158

    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
    //Рекурсивная функция цепной проверки категории
    	function category(){
    		static $category;
    		static $level=0;
    		$myrow = mysql_query("SELECT id,pot_category FROM categroy WHERE sysname='".$_GET['do'][$level]."'");
    		if(mysql_num_rows($myrow)){
    		$result = mysql_fetch_assoc($myrow);
    		if($result['no_viev']==0){
    		if($result['sysname']==end($_GET['do'])){
    			return 'category';
    			}else{
    				$level++;
    				$this->category();
    				}
    				}else{return 'no_viev';}
    		}else{
    			//Если категории не найдено то показываем ошибку 404
    			return FALSE;}
    		
    		}

    Бессмысленная рекурсия

    lans8097, 16 Января 2012

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

    +150

    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
    function check($string_to_search) {
    $stack = array();
    foreach (preg_split("//", $string_to_search) as $char) {
    switch ($char) {
    case '{':
    case '(':
    case '[':
    array_push($stack, $char);
    break;
    case '}':
    if (array_pop($stack) != "{") return false;
    break;
    case ')':
    if (array_pop($stack) != "(") return false;
    break;
    case ']':
    if (array_pop($stack) != "[") return false;
    break;
    }
    }
    return true;
    }

    by kolen

    varg242, 16 Января 2012

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

    +146

    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
    <?php
    function check($s)
    {
        $brackets = array(')' => '(', ']' => '[', '}' => '{');
        $stack = array();
        $stack_size = 0;
        for($i = 0; $i < strlen($s); $i++)
        {
    	if (in_array($s[$i], array_values($brackets)))
            {
        	    $stack[$stack_size++] = $s[$i];
            }
            else if (in_array($s[$i], array_keys($brackets)))
            {
        	    $last = $stack_size ? $stack[$stack_size-1] : '';
                if ($last != $brackets[$s[$i]])
                {
            	return false;
        	    }
                else
                {
        		unset($stack[--$stack_size]);
        	    }
        	}
        }
        return count($stack) == 0;
    }
    
    function check_brackets($s)
    {
        if(check($s))
        {
            return true;
        }
        else return false;
    }
    
    if($_POST["bracket_string"])
    {
        if(check_brackets($_POST["bracket_string"]))
        {
            $message = "Check passed";
        }
        else $message = "Check failed";
    }
    
    ?>

    Пацаны, есть задание. Срочно заговнокодить код, но чтобы точно работало.

    varg242, 16 Января 2012

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

    +155

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    if ($num > ($i-4)) {
    	$delta = $i - $num;	
    	if ($delta == 1) $num = $num - 3;
    	if ($delta == 2) $num = $num - 2;
    	if ($delta == 3) $num = $num - 1;
    }

    где i это кол-во элементов, num - текущий элемент, delta - разница между количеством и текущим
    Задача: уникализировать алгоритм. Мне не нравится вот это
    if ($delta == 1) $num = $num - 3;
    if ($delta == 2) $num = $num - 2;
    if ($delta == 3) $num = $num - 1;
    но как сделать это одной строкой пока придумать не могу...

    Single, 16 Января 2012

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

    +147

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    if($row['status_id'] != 6){
        if($row['assist_type'] == 0){
            $row['assist_type'] == 3;
        }
        ...
    }

    :-|

    temka, 13 Января 2012

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

    +167

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    $zfunctv=0;
    if ($zfunctv==1 || $zfunctv==2 || $zfunctv==3 || $zfunctv==4) require_once('function1.php');
    if ($zfunctv==2 || $zfunctv==3) require_once('function2.php');
    if ($zfunctv==3 || $zfunctv==4) require_once('function3.php');
    if ($zfunctv==''){
    	require_once('function1.php');//Для всех окон
    	require_once('function2.php');//Для полноразмерных окон
    	require_once('function3.php');//Для оборудования
    	require_once('admfunct.php');
    }

    Какого хрена? Как это работает?! Код коммерческой системы UserSide v2.48

    Neka, 13 Января 2012

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

    +171

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    $date_day = date("d");
    $date_month = date("m");
    $date_year = date("Y");
    $date_time = date("H:i");
    $date_cont = " " . $date_day . "-" . $date_month . "-" . $date_year . " " . $date_time;

    Вот так мы получаем дату строкой :)
    Впоследствии используется только $date_cont.

    andymitrich, 12 Января 2012

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

    +171

    1. 1
    2. 2
    3. 3
    4. 4
    $headers = @get_headers("http://".$domen_name."/templates/form-".$_GET['id'].".tpl");
            if(preg_match("|200|", $headers[0])) 
            {
                $form = file_get_contents($root."/templates/form-".$_GET['id'].".tpl");

    Самая жестокая проверка на существование файла которую я видел в своей жизни.
    Кодеры не знали про file_exists()

    sqlhack, 11 Января 2012

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

    +164

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    private function _arrayToString($array)
        {
            $count = count($array);
            $str = '';
            for ($i = 0; $i < $count; $i++) {
                $str .= $array[$i] . ',';
            }
            $str = substr($str, 0, strlen($str) - 1);
            return $str;
        }

    implode ?? не, не слышал!

    sqrt, 11 Января 2012

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

    +155

    1. 1
    2. 2
    foreach ($period_range as $k=>$v) 
    	{?><option value="<?=$k?>"<?=($k==$period)?' selected':''?>><?=$v?></option><?}

    Накодил как-то...

    zima, 11 Января 2012

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