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

    +159

    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
    53. 53
    54. 54
    55. 55
    56. 56
    57. 57
    58. 58
    59. 59
    60. 60
    61. 61
    62. 62
    63. 63
    64. 64
    65. 65
    66. 66
    67. 67
    68. 68
    69. 69
    70. 70
    71. 71
    72. 72
    73. 73
    74. 74
    75. 75
    76. 76
    77. 77
    78. 78
    79. 79
    80. 80
    81. 81
    82. 82
    83. 83
    84. 84
    85. 85
    86. 86
    87. 87
    88. 88
    89. 89
    90. 90
    91. 91
    92. 92
    93. 93
    94. 94
    95. 95
    96. 96
    97. 97
    98. 98
    99. 99
    <?
    function flevel($exp)
    {
    include_once "config/mysql.php";
    
    	$querylevel = "SELECT maxexp FROM level";
    	$levelquery = mysql_query($querylevel);
    	while($rowslvl = mysql_fetch_row($levelquery))
    	{
    	$levelarr[] = $rowslvl[0];
    	}
    	
    	
    	
    	switch(TRUE)
        {
    		
        case ($exp <= $levelarr[0]):
        return $level = "1";
        break;
    
        case ($exp <= $levelarr[1]):
        return $level = "2";
        break;
    
        case ($exp <= $levelarr[2]):
        return $level = "3";
        break;
    
        case ($exp <= $levelarr[3]):
        return $level = "4";
        break;
    	
    	case ($exp <= $levelarr[4]):
        return $level = "5";
        break;
    	
    	case ($exp <= $levelarr[5]):
        return $level = "6";
        break;
    	
    	case ($exp <= $levelarr[6]):
        return $level = "7";
        break;
    	
    	case ($exp <= $levelarr[7]):
        return $level = "8";
        break;
    	
    	case ($exp <= $levelarr[8]):
        return $level = "9";
        break;
    	
    	case ($exp <= $levelarr[9]):
        return $level = "10";
        break;
    	
    	case ($exp <= $levelarr[10]):
        return $level = "11";
        break;
    	
    	case ($exp <= $levelarr[11]):
        return $level = "12";
        break;
    	/* ... */
    	case ($exp <= $levelarr[42]):
        return $level = "43";
        break;
    	
    	case ($exp <= $levelarr[43]):
        return $level = "44";
        break;
    	
    	case ($exp <= $levelarr[44]):
        return $level = "45";
        break;
    	
    	case ($exp <= $levelarr[45]):
        return $level = "46";
        break;
    	
    	case ($exp <= $levelarr[46]):
        return $level = "47";
        break;
    	
    	case ($exp <= $levelarr[47]):
        return $level = "48";
        break;
    	
    	case ($exp <= $levelarr[48]):
        return $level = "49";
        break;
    	
    	case ($exp > $levelarr[49]):
        return $level = "50";
        break;
        }
    }
    ?>

    Пришел в проект по созданию веб игры, смотрю организацию проекта... Жопа там, что папки, что код, что база одно и тоже, каша. Вот нашел одну забавную функцию. Она возвращает уровень персонажа судя по кол-во XP. Вместо того что бы писать 'SELECT `level` FROM `level` WHERE `minexp` <= ' . $exp . ' AND `maxexp` > ' . $exp надо было switch .. case писать. Нету слов.

    volter9, 11 Июня 2014

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

    +157

    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
    function add() {	
    	global $MovRow, $Array_html, $Array_desc, $Array_mov, $Opera;
    	if ($MovRow==4) return;
    	if ($Opera) {
    		for ($i=0; $i<5; $i++) {
    			$Array_html[$i]=str_replace("padding-bottom: 3px;", "", $Array_html[$i]);
    		}
    	}
    
    	for ($i=0; $i<5; $i++) {	
    		if ($Array_mov[$i]<=5) {    	
    			if ($MovRow==5&&$Array_mov[$i]==4)
    				$Array_html[$i]=str_replace($Array_desc[$i], $Array_desc[$i]."<br><br>", $Array_html[$i]);
    			else if ($MovRow==5&&$Array_mov[$i]==3)
    				$Array_html[$i]=str_replace($Array_desc[$i], $Array_desc[$i]."<br><br><br>", $Array_html[$i]);
    			
    			else if ($MovRow==6&&$Array_mov[$i]==4) {	
    			 	$Array_html[$i]=str_replace($Array_desc[$i], $Array_desc[$i]."<br><br><br>", $Array_html[$i]);
    			}
    			else if($MovRow==6&&$Array_mov[$i]==5) {
    				if ($Array_desc[$i][strlen($Array_desc[$i])-1]=='>'&&$Array_desc[$i][strlen($Array_desc[$i])-2]=='r') 
    					$Array_html[$i]=str_replace($Array_desc[$i], $Array_desc[$i]."<br>", $Array_html[$i]);		
    				else $Array_html[$i]=str_replace($Array_desc[$i], $Array_desc[$i]."<br><br>", $Array_html[$i]);				
    			}
    			else if($MovRow==7&&$Array_mov[$i]==4)
    				$Array_html[$i]=str_replace($Array_desc[$i], $Array_desc[$i]."<br><br><br><br>", $Array_html[$i]);
    			else if($MovRow==7&&$Array_mov[$i]==5)
    				$Array_html[$i]=str_replace($Array_desc[$i], $Array_desc[$i]."<br><br><br>", $Array_html[$i]);	
    			else if($MovRow==7&&$Array_mov[$i]==6)
    				$Array_html[$i]=str_replace($Array_desc[$i], $Array_desc[$i]."<br><br>", $Array_html[$i]);
    		}
    	}
    }

    наткнулся на этот код, и что-то нехватает мозгов, чтобы понять, что это, для чего это, и где это чудо применяется =((

    govnokoder2, 10 Июня 2014

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

    +162

    1. 1
    2. 2
    3. 3
    4. 4
    if ($params['sendNow'] !== true)
    	return $this->addToSendingEmailList($params);
    else
    	return $this->send($params);

    Творческая муза сумеречного украинского гения не может проверить условие как нормальный, белый человек.

    solbianca, 09 Июня 2014

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

    +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
    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
    case 1051: switch($page){
          case "hirurg_ob": include "surgery/hirurg_ob.php";
            break;
          case "hirurg_ap": include "surgery/hirurg_ap.php";
            break;
          case "hirurg_ap_analtresk": include "surgery/hirurg_ap_analtresk.php";
            break;
            
          case "hirurg_ap_anoskop": include "surgery/hirurg_ap_anoskop.php";
            break;
          case "hirurg_ap_gemoroy": include "surgery/hirurg_ap_gemoroy.php";
            break;
          case "hirurg_ap_paraproktit": include "surgery/hirurg_ap_paraproktit.php";
            break;                                               
          case "hirurg_ap_physical": include "surgery/hirurg_ap_physical.php";
            break;
          case "hirurg_ap_rektoscop": include "surgery/hirurg_ap_rektoscop.php";
            break;
          case "hirurg_ap_twofingers": include "surgery/hirurg_ap_twofingers.php";
            break;
        
          case "hirurg_au": include "surgery/hirurg_au.php";
            break;
          case "hirurg_au_cryptorchism": include "surgery/hirurg_au_cryptorchism.php";
            break;
          case "hirurg_au_fimoz": include "surgery/hirurg_au_fimoz.php";
            break;                                               
          case "hirurg_au_hydrocele": include "surgery/hirurg_au_hydrocele.php";
            break;
          case "hirurg_au_olegogran": include "surgery/hirurg_au_olegogran.php";
            break;
          case "hirurg_au_uzdechka": include "surgery/hirurg_au_uzdechka.php";
            break;                                            
          case "hirurg_au_varikocele": include "surgery/hirurg_au_varikocele.php";
            break;

    сайт Конекса.... заходим на сайт и нам предлагают скачать index.php.... ну а я че... скачал)) вот так вот странички инклудятся. и это лишь малая часть....

    mountpoint, 09 Июня 2014

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

    +166

    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
    $response = LINQ::from($products->as_array('id'))
                        ->join($images)
                        ->on(function ($from_key, $from_value, $join_key, $join_value){
                            return $from_key === $join_key;
                        })
                        ->select(function($from_key, $from_value, $join_key, $join_value)use($searchStr){
                            $replaceStr = '<span class="badge badge-success">'.$searchStr.'</span>';
                            return array(
                               'title' => str_ireplace($searchStr, $replaceStr, $from_value->title),
                               'href' => '/product/'.$from_value->alias.'.html',
                               'thumb' => '/public/'.$join_value->thumb
                            );
                        })
                        ->result();

    Так бывает когда приверженца C# заставляют писать на PHP. Он обязательно напишет свой аналог LINQ с театром и балеринами, а потом будет ныть о том, что в похапе нет нормальных лямбд.

    Strannik1941, 08 Июня 2014

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

    +161

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    9. 9
    static public function dumpObj($obj)
    {
            ob_start();
            print_r($obj);
            $dump = ob_get_contents();
            ob_end_clean();
    
            return $dump;
    }

    Нашел в коде проекта. Для тех кто не понял: посмотрите доку функции print_r, на второй аргумент...

    fetole, 04 Июня 2014

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

    +154

    1. 1
    $data_move = date("d.m.Y", mktime(0, 0, 0, (int)date("m",time()), (int)date("d",time()), (int)date("Y",time())));

    Вишенка даже не в том, что афтар - кармический индус, а в том, что теоретически возможна ситуация, при которой date("m",time()) выполняется в последнюю миллисекунду предыдущего месяца, а date("d",time()) - в первую следующего.

    catgav, 03 Июня 2014

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

    +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
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    <?php
    $subjects = array (
      0 => 
        array (
          'title' => 'ОС Unix',
          'teacher' => 'Вася',
          'mark' => '3'),
      1 => 
        array (
          'title' => 'Компьютерные сети',
          'teacher' => 'Петя',
          'mark' =>'4'),
      2 => 
        array (
          'title' =>  'Алгоритмы',
          'teacher' =>  'Коля',
          'mark' => '4'),
    );?>
    <table>
    <?  foreach ($subjects as $key=>$subject) : 
    $number = $key+1;
    ?>
                <tr>
                    <td><?echo $number;?></td>
    				<td><?echo $subject['title'];?></td>
                    <td><?echo $subject['teacher'];?></td>
                    <td><?echo $subject['mark'];?></td>
                </tr>
    <? endforeach; ?>
    </table>
    <? var_dump($subject)?>

    wiedzal, 31 Мая 2014

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

    +157

    1. 1
    2. 2
    3. 3
    if (strlen($arResult["ERROR_MESSAGE"]) <= 0){
    // любая ахинея
    }

    2014 год. Битрикс все так же терпеливо ожидает патент на строки отрицательной длины.
    Полагаю, такой икспрешн используется не только в компоненте корзины, учитывая страсть авторов к копипасте.

    velosipedistorg, 30 Мая 2014

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

    +154

    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
    if ($_SERVER["REQUEST_METHOD"] == "POST" && strlen($_REQUEST["backButton"]) > 0 && ($arParams["DELIVERY_NO_SESSION"] == "N" || check_bitrix_sessid()))
    {
    	if($arResult["POST"]["CurrentStep"] == 6 && $arResult["SKIP_FORTH_STEP"] == "Y")
    		$arResult["CurrentStepTmp"] = 3;
    
    	if($arResult["POST"]["CurrentStepTmp"] <= 5 && $arResult["SKIP_THIRD_STEP"] == "Y")
    		$arResult["CurrentStepTmp"] = 2;
    
    	if($arResult["POST"]["CurrentStepTmp"] <= 3 && $arResult["SKIP_SECOND_STEP"] == "Y")
    		$arResult["CurrentStepTmp"] = 1;
    
    	if(IntVal($arResult["CurrentStepTmp"])>0)
    		$arResult["CurrentStep"] = $arResult["CurrentStepTmp"];
    	else
    		$arResult["CurrentStep"] = $arResult["CurrentStep"] - 2;
    	$arResult["BACK"] = "Y";
    }
    if ($arResult["CurrentStep"] <= 0)
    	$arResult["CurrentStep"] = 1;
    $arResult["ERROR_MESSAGE"] = "";

    Компонент страницы заказа в магазине Битрикса, 14я версия.
    Тут вам и отсутствие констант для осмысленных шагов, и отсутствие конфигурирования этих шагов, как они i18n-ятся, вообще не представляю.
    КАК ЭТО ВСЁ РАБОТАЕТ??!!!

    ЗЫ мало того, тут же в компонент вкопипащен (или переговнокоден заново, не сравнивал) процесс залогинивания/регистрации нового юзера, елси он не залогинен. Не смог перекопипастить эту копипасту лишь потому, что она содержит 310 строк. Неслабый DRY.

    velosipedistorg, 30 Мая 2014

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