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

    +161

    1. 1
    while (!$db->query("INSERT INTO lots (lot_num) VALUES (".($unicnum=rand(1,99999)).")"));

    Проверка и создание уникального рандомного идентификатора

    dancebass, 17 Января 2012

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

    +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
    public function run() {
      $stime = microtime(TRUE);
      $this->header('Content-Type: text/html');
      $this->setcookie('testcookie', '1');
      $this->registerShutdownFunction(function() {
    ?></html><?php
      });
    
    ?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>It works!</title>
    </head>
    <body>
    <h1>It works! Be happy! ;-)</h1>
    ............
    ............
    ............

    phpDaemon Example.php line 63

    LmSys, 17 Января 2012

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

    +173

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    /*
          if($_REQUEST["act_id"]==8){
          а нет. маньяки так не пишут...
    */
    define("Э", $_REQUEST["act_id"]);
    if( 8===Э ){ 
    	...
    }

    оператор члена :)

    basename, 17 Января 2012

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

    +161

    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
    <?php
    //...
    while (($data = fgetcsv($handle, 1000, $this->CSV_SEPARATOR, $this->CSV_ENCLOSURE)) !== FALSE) {
    				$num = count($data);
    				$item = array();
    
    				for ($c=0; $c < count($data); $c++) {
    					$item[] = $data[$c];
    				}
    
    //некие действия с $item. $data больше нигде используется
    
    ?>

    Итого, $num не используется в цикле, да и сам по себе цикл - бесполезен, можно было сделать просто $item = $data; Не говоря уже о том, что можно просто использовать $data.

    Код из одного модуля для opencart.

    mr.The, 16 Января 2012

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

    +149

    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
    <?php
    function check_brackets($s)
    {
        $brackets = array('(' => ')' , '[' => ']', '{' => '}');
        $stack = array();
        
        for($i = 0; $i < strlen($s); $i++)
        {
            if(in_array($s[$i], array_keys($brackets)))
            {
                array_push($stack, $brackets[$s[$i]]);
            }
            elseif(in_array($s[$i], array_values($brackets)))
            {
                if(empty($stack) || array_pop($stack) != $s[$i])
                {
                    return false;
                }
            }
        }
        if(empty($stack)) return true;
    }
    
    if($_POST["bracket_string"] && $_POST["bracket_string"] <= 30)
    {
        if(check_brackets($_POST["bracket_string"]))
        {
            $message = "Check passed";
        }
        else $message = "Check failed";
    }
    
    ?>

    Финальная версия.

    varg242, 16 Января 2012

    Комментарии (18)
  6. 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)
  7. 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)
  8. 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)
  9. 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)
  10. 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)