1. 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)
  2. 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)
  3. 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)
  4. 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)
  5. 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)
  6. 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)
  7. 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)
  8. 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)
  9. PHP / Говнокод #9078

    +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
    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
    <?php
    function bracket_checker($input_string)
    {
    $checked = true;
    $bracket1_open = "(";
    $bracket1_close = ")";
    $bracket2_open = "[";
    $bracket2_close = "]";
    $bracket3_open = "{";
    $bracket3_close = "}";
    If (strlen($input_string)> 30)
    	die("Wrong length of the input string!");
    $bracket1_count= substr_count($input_string,$bracket1_open);
    $bracket2_count= substr_count($input_string,$bracket1_close);
    If ($bracket1_count != $bracket2_count)
    	$checked = false;
    $bracket1_count= substr_count($input_string,$bracket2_open);
    $bracket2_count= substr_count($input_string,$bracket3_close);
    If ($bracket1_count != $bracket2_count)
    	$checked = false;
    
    $bracket1_count= substr_count($input_string,$bracket3_open);
    $bracket2_count= substr_count($input_string,$bracket3_close);
    If ($bracket1_count != $bracket2_count)
    	$checked = false;
    
    If  ($checked)
    	print("Check passed!");
    else
    	print("Check failed!");
    }
    
    echo "ab ( cd ()[]) ef{5} - "; bracket_checker("ab ( cd ()[]) ef{5}"); echo "\n";
    echo "ab ( cd { ef ) gh } ij - "; bracket_checker("ab ( cd { ef ) gh } ij"); echo "\n";
    
    ?>

    Прямо с собеседования пишу

    varg242, 11 Января 2012

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

    +164

    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 recoveryPassword( $data )
    {
    	$value = implode( '', $data );
    	$key = implode( '', array_keys( $data ) );
    
    	$query = '
    		SELECT
    			u.user_id AS `id`,
    			u.login,
    			u.salt,
    			u.mail,
    			u.status
    		FROM
    			users AS `u`
    		WHERE
    			u.'.$key.' = "'.$value.'"
    		LIMIT 1;';
    
    	if( !list($result) = $this->db->get($query) )
    	{
    		...
    }

    Копаясь в старом студийном коде наткнулся. Видимо, предполагалось, что в качестве $data будет передан массив вида array( 'field' => 'value' ) c 1 элементом.

    faiwer, 11 Января 2012

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