1. Лучший говнокод

    В номинации:
    За время:
  2. PHP / Говнокод #8633

    +175

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    <?php if ($_GET['id'] == 12 or $_GET['Itemid'] == 37 or $_GET['id'] == 13 or $_GET['id'] == 32 or $_GET['pid']) { ?>
    				<td width="65px">&nbsp;</td>
    
    
    				<? } ?>
    				<td class="otstup_content">

    контекстно независимые шаблонные конструкции.
    здравствуй joomal! здравствуй студия с большим именем!

    da4ever, 24 Ноября 2011

    Комментарии (10)
  3. C++ / Говнокод #7770

    +175

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    if (l1->Initilalize("4D353141",true))
    	StatusBarBottom->Panels->Items[2]->Text="Плата XXX загружена";
    else StatusBarBottom->Panels->Items[2]->Text="Не обнаружена плата L791, ном. 4D353141";
    
    if (l1->Initilalize("4D353129",true))
    	StatusBarBottom->Panels->Items[2]->Text="Платы XXX загружены";
    else StatusBarBottom->Panels->Items[2]->Text="Не обнаружена плата XXX, ном. 4D353129";
    
    if (l1->Initilalize("4D353129",true) && l1->Initilalize("4D353129",true) )
    	StatusBarBottom->Panels->Items[2]->Text="Загружены две платы XXX";

    Копипаста - враг программиста. Чувак инициализировал одну плату 4 раза!!!

    phys-tech, 05 Сентября 2011

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

    +175

    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
    function get_user_name($id) {
    		$query = "
    			SELECT name
    			FROM users 
    			WHERE id = '".$id."'
    		";
    		$this->registry['sql']->query($query);
    		if ($this->registry['sql']->getNumberRows()>0) {
    			$result = $this->registry['sql']->getFetchObject();
    			return $result[0]->name;
    		}
    	}
    	
    	function get_user_login($id) {
    		$query = "
    			SELECT login
    			FROM users 
    			WHERE id = '".$id."'
    		";
    		$this->registry['sql']->query($query);
    		if ($this->registry['sql']->getNumberRows()>0) {
    			$result = $this->registry['sql']->getFetchObject();
    			return $result[0]->login;
    		}
    	}
    	
    	function get_user_password($id) {
    		$query = "
    			SELECT password
    			FROM users 
    			WHERE id = '".$id."'
    		";
    		$this->registry['sql']->query($query);
    		if ($this->registry['sql']->getNumberRows()>0) {
    			$result = $this->registry['sql']->getFetchObject();
    			return $result[0]->password;
    		}
    	}
    	
    	function get_user_role($id) {
    		$query = "
    			SELECT role
    			FROM users 
    			WHERE id = '".$id."'
    		";
    		$this->registry['sql']->query($query);
    		if ($this->registry['sql']->getNumberRows()>0) {
    			$result = $this->registry['sql']->getFetchObject();
    			return $result[0]->role;
    		}
    	}
    	
    	function get_user_adress($id) {
    		$query = "
    			SELECT adress
    			FROM users 
    			WHERE id = '".$id."'
    		";
    		$this->registry['sql']->query($query);
    		if ($this->registry['sql']->getNumberRows()>0) {
    			$result = $this->registry['sql']->getFetchObject();
    			return $result[0]->adress;
    		}
    	}
    	
    	function get_user_valuta($id) {
    		$query = "
    			SELECT valuta
    			FROM users 
    			WHERE id = '".$id."'
    		";
    		$this->registry['sql']->query($query);
    		if ($this->registry['sql']->getNumberRows()>0) {
    			$result = $this->registry['sql']->getFetchObject();
    			return $result[0]->valuta;
    		}
    	}
    	
    	function get_room_type($id){
    		$query = "
    			SELECT type
    			FROM rooms 
    			WHERE id = '".$id."'
    		";
    		$this->registry['sql']->query($query);
    		if ($this->registry['sql']->getNumberRows()>0) {
    			$result = $this->registry['sql']->getFetchObject();
    			return $result[0]->type;
    		}	
    	}

    в догонку к Говнокод #7684

    vkontakte, 29 Августа 2011

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

    +175

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    function showOrHide(id) {
    if(jQuery('#'+id).is(':hidden')) {
    jQuery('#'+id).show();
    } else {
    jQuery('#'+id).hide();
    }
    }

    rutube.ru, jQuery().toggle()

    LoserJS, 26 Августа 2011

    Комментарии (20)
  6. JavaScript / Говнокод #7528

    +175

    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
    if (last=="ня") {new_name=name[0].substring(0, name[0].length-2) + 'ни';}
     if (last=="др") {new_name=name[0].substring(0, name[0].length-2) + 'дра';}
     if (last=="та") {new_name=name[0].substring(0, name[0].length-2) + 'ты';}
     if (last=="лл") {new_name=name[0].substring(0, name[0].length-2) + 'лла';}
     if (last=="ия") {new_name=name[0].substring(0, name[0].length-2) + 'ии';}
     if (last=="ан") {new_name=name[0].substring(0, name[0].length-2) + 'ана';}
     if (last=="ся") {new_name=name[0].substring(0, name[0].length-2) + 'си';}
     if (last=="ий") {new_name=name[0].substring(0, name[0].length-2) + 'ия';}
     if (last=="ма") {new_name=name[0].substring(0, name[0].length-2) + 'мы';}
     if (last=="ас") {new_name=name[0].substring(0, name[0].length-2) + 'аса';}
     if (last=="ья") {new_name=name[0].substring(0, name[0].length-2) + 'ьи';}
     if (last=="ря") {new_name=name[0].substring(0, name[0].length-2) + 'ри';}
     if (last=="ка") {new_name=name[0].substring(0, name[0].length-2) + 'ки';}
     if (last=="ра") {new_name=name[0].substring(0, name[0].length-2) + 'ры';}
     if (last=="на") {new_name=name[0].substring(0, name[0].length-2) + 'ны';}
     if (last=="ша") {new_name=name[0].substring(0, name[0].length-2) + 'ши';}
     if (last=="тя") {new_name=name[0].substring(0, name[0].length-2) + 'ти';}
     if (last=="ис") {new_name=name[0].substring(0, name[0].length-2) + 'иса';}
     if (last=="сю") {new_name=name[0].substring(0, name[0].length-2) + 'сю';}
     if (last=="га") {new_name=name[0].substring(0, name[0].length-2) + 'ги';}
     if (last=="ля") {new_name=name[0].substring(0, name[0].length-2) + 'ли';}
     if (last=="ек") {new_name=name[0].substring(0, name[0].length-2) + 'ька';}
     if (last=="ёк") {new_name=name[0].substring(0, name[0].length-2) + 'ька';}
     if (last=="ян") {new_name=name[0].substring(0, name[0].length-2) + 'яна';}
     if (last=="ай") {new_name=name[0].substring(0, name[0].length-2) + 'ая';}
     if (last=="ав") {new_name=name[0].substring(0, name[0].length-2) + 'ава';}
     if (last=="жа") {new_name=name[0].substring(0, name[0].length-2) + 'жи';}
     if (last=="ей") {new_name=name[0].substring(0, name[0].length-2) + 'ея';}
     if (last=="ор") {new_name=name[0].substring(0, name[0].length-2) + 'ора';}
     if (last=="ей") {new_name=name[0].substring(0, name[0].length-2) + 'ея';}
     if (last=="ак") {new_name=name[0].substring(0, name[0].length-2) + 'ака';}
     if (last=="ох") {new_name=name[0].substring(0, name[0].length-2) + 'оха';}
     if (last=="ег") {new_name=name[0].substring(0, name[0].length-2) + 'ега';}
     if (last=="на") {new_name=name[0].substring(0, name[0].length-2) + 'ны';}
     if (last=="ик") {new_name=name[0].substring(0, name[0].length-2) + 'ика';}
     if (last=="ес") {new_name=name[0].substring(0, name[0].length-2) + 'еса';}
     if (last=="юн") {new_name=name[0].substring(0, name[0].length-2) + 'юна';}

    склонения фамилий и имён Оо

    substr, 12 Августа 2011

    Комментарии (27)
  7. JavaScript / Говнокод #7430

    +175

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    9. 9
    <h2>
    <script>
    				var date = new Date();
    				var lefttime = 31 - date.getDate();
    				var day = ['дней','день','дня','дня','дня','дней','дней','дней','дней','дней','дней','дней','дней','дней','дней','дней','дней','дней','дней','дней','дней','день','дня','дня','дня','дней','дней','дней','дней','дней','дней','день'];
    				document.write('Чаты@Mail.Ru закрываются через ' + lefttime + ' ' + day[lefttime]);
    			</script>
    Чаты@Mail.Ru закрываются через 30 дней 
    </h2>

    Баннер на входе в чат мэйл ру с предупреждением о закрытии.
    1 августа счетчик обнулился и пошел считать заново.
    Зацените перечисление падежей для дней.

    etcshadow, 03 Августа 2011

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

    +175

    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
    <select name="d_diam" >
                                        <option value="" selected="selected"></option>
    <?php if ($d_diam == 0) { ?>
                                            <option value="1" ><?php echo "Радиус 13'"; ?></option>
                                            <option value="0" selected="selected"><?php echo "Радиус 12'"; ?></option>
                                            <option value="2"><?php echo "Радиус 14'"; ?></option>
                                            <option value="3"><?php echo "Радиус 15'"; ?></option>
                                            <option value="4"><?php echo "Радиус 16'"; ?></option>
                                            <option value="5"><?php echo "Радиус 17'"; ?></option>
                                            <option value="6"><?php echo "Радиус 18'"; ?></option>
                                            <option value="7"><?php echo "Радиус 19'"; ?></option>
                                            <option value="8"><?php echo "Радиус 20'"; ?></option>
                                            <option value="9"><?php echo "Радиус 21'"; ?></option>
                                            <option value="10"><?php echo "Радиус 22'"; ?></option>
                                            <option value="11"><?php echo "Радиус 23'"; ?></option>
                                            <option value="12"><?php echo "Радиус 24'"; ?></option>
    <?php } elseif ($d_diam == 1) { ?>
                                            <option value="1" selected="selected"><?php echo "Радиус 13'"; ?></option>
                                            <option value="0" ><?php echo "Радиус 12'"; ?></option>
                                            <option value="2"><?php echo "Радиус 14'"; ?></option>
                                            <option value="3"><?php echo "Радиус 15'"; ?></option>
                                            <option value="4"><?php echo "Радиус 16'"; ?></option>
                                            <option value="5"><?php echo "Радиус 17'"; ?></option>
                                            <option value="6"><?php echo "Радиус 18'"; ?></option>
                                            <option value="7"><?php echo "Радиус 19'"; ?></option>
                                            <option value="8"><?php echo "Радиус 20'"; ?></option>
                                            <option value="9"><?php echo "Радиус 21'"; ?></option>
                                            <option value="10"><?php echo "Радиус 22'"; ?></option>
                                            <option value="11"><?php echo "Радиус 23'"; ?></option>
                                            <option value="12"><?php echo "Радиус 24'"; ?></option>
    <?php } elseif ($d_diam == 2) { ?>

    ... и так 20 раз

    cybervantyz, 15 Июля 2011

    Комментарии (30)
  9. C++ / Говнокод #7019

    +175

    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
    class BalanceValue
    {
      /* ... */
      BalanceValue( int pFamilyGroupId,
                    int ContractId,
                    int pProfileId,
                    int pSncode,
                    long pPurchaseSeqNo,
                    int pBundledProductId,
                    time_t pCreationDate,
                    time_t pNextresetDate,
                    char pState,
                    double pAggregate,
                    double pCredit,
                    double pInitialCredit,
                    double pReservation,
                    char pColor,
                    double pProrateFactor,
                    int pCurrencyId,
                    int pUomId,
                    time_t pSnapshotDate,
                    unsigned long pSequenceNumber,
                    time_t pValidFrom,
                    time_t pValidTo,
                    int pPricingAlternative,
                    int pCocTariffId,
                    time_t pLastresetDate,
                    double pLateCallAggr );
      /* ... */
      void getAllValues( int&            pContractId,
                         int&            pProfileId,
                         int&            pSncode,
                         long&           pPurchaseSeqNo,
                         int&            pBundledProductId,
                         time_t&         pNextResetDate,
                         char&           pState,
                         double&         pAggregate,
                         double&         pCredit,
                         double&         pInitialCredit,
                         double&         pReservation,
                         char&           pColor,
                         double&         pProRateFactor,
                         int&            pCurrencyId,
                         int&            pUomId,
                         time_t&         pSnapShotDate ,
                         unsigned long&  pSequenceNumber,
                         time_t&         pValidFrom,
                         time_t&         pValidTo,
                         int&            pPricingAlternative,
                         int&            pCocTariffId,
                         time_t&         pLastResetDate,
                         double&         pLateCallAggr );
      /* ... */
    };

    чудо интерфейс. 25 параметров у конструктора, 23 параметров (рефернсы!) у геттера. кто больше?

    ЗЫ как оба реализованы можете сами догадатся. и еще несколько других методов в подобном стиле.
    ЗЗЫ да, есть и нормальные геттеры.
    ЗЗЗЫ нет, другого конструктора нету.
    ЗЗЗЗЫ нет, разнести значение по мелким структурам, более приемлимым человеческому мозгу, народ не догадывается. не наш так сказать стиль. (да, есть естественная групировка параметров по источнику откуда они берутся.)

    Dummy00001, 21 Июня 2011

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

    +175

    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
    function enc($text) {
    
    $bad_symbols =  array('ï', 'î', 'é', 'è', 'ì', 'å', 'í', 'õ', 'Ö', 'Ç',
                          'Â', 'â', 'ó', 'ç', 'ä', 'à', 'Í', 'ò', 'Ð', 'ÿ',
    	        'ñ', 'Ì', 'ë', 'ý', 'ö', 'ã', 'Ñ', 'Ô', 'Ï', 'ü',
    	        'Ã', 'ð', 'æ', 'á', 'À', '¸', 'ù', 'Ê', 'ê', 'Á',
    	         '÷', 'Ý', 'û', 'Ë', 'È', 'Ò', 'ß', 'þ', 'Ä', 'Î',
    	        'Ó', 'Å', 'Æ', 'Û', 'ø', 'ô', '×', '¹', '³', 'Õ', 'Þ', 'Ø');
    					  
    $good_symbols = array('п', 'о', 'й', 'и', 'м', 'е', 'н', 'х', 'Ц', 'З',
                          'В', 'в', 'у', 'з', 'д', 'а', 'Н', 'т', 'Р', 'я',
    	        'с', 'М', 'л', 'э', 'ц', 'г', 'С', 'Ф', 'П', 'ь',
                          'Г', 'р', 'ж', 'б', 'А', 'ё', 'щ', 'К', 'к', 'Б',
    	         'ч', 'Э', 'ы', 'Л', 'И', 'Т', 'Я', 'ю', 'Д', 'О',
    	         'У', 'Е', 'Ж', 'Ы', 'ш', 'ф', 'Ч', '№', 'і', 'Х', 'Ю', 'Ш');
     
    $text_rus = str_replace($bad_symbols, $good_symbols, $text, $count);
    
    				
    // Восстанавливаем японские иероглифы
    $bad_symbols =  array('іх', 'Тф', 'ҐЇ', 'Ґё', 'ҐЯ', '©`', 'Ґµ', 'Ґа', 'ь\\', '¤¦', '¤µ', 'Ґ«', 'Ґу', 'Ґї', 'Ґм', 'Ґй',
                          'Ґ¦', 'ҐЙ', 'Ґ·', 'Ґ°', 'ҐК', 'Ґл', 'Ґк', 'Ґи', 'ЈЁ', 'Ј©', 'ЈЬ', 'ЈЇ', 'Бч', 'РЗ', 'СІ', 'зR',
    	         'ВЇ', 'РД', 'ИЪ', 'Ѕв', 'ҐЄ', 'Ґп', 'Ґі', 'РР', 'ЯM', 'Зъ', 'ҐИ', '¤н', '¤ї', '¤у', '¤А', '±°',
    	        'ЗУ', '‘й', 'к ', 'ҐЬ', 'Ґн', '¤П', '¤д', '‰ф', '¤Я', '¤л', '¤і', '¤И', '¤к');
    					  
    $good_symbols = array('初', '音', 'ク', 'ジ', 'ミ', 'ー', 'サ', 'ム', '黒', 'う', 'さ', 'カ', 'ン', 'タ', 'レ', 'ラ',
                          'ウ', 'ド', 'シ', 'グ', 'ナ', 'ル', 'リ', 'ヨ', '(', ')', '\', '/', '流', '星', '巡', '鏡',
    	        '炉', '心', '融', '解', 'オ', 'ワ', 'コ', '行', '進', '曲', 'ト', 'ろ', 'た', 'ん', 'だ', '卑',
    	        '怯', '戦', '隊', 'ボ', 'ロ', 'は', 'や', '夢', 'み', 'る', 'こ', 'と', 'り');
    
    $text_jap = str_replace($bad_symbols, $good_symbols, $text_rus, $count2);
    
    if ($count > 3)
        return $text_rus;
    elseif ($count2 > 3)
        return $text_jap;
    else return $text;
    }

    Декодер кривых тегов на интернет-радио.
    Написано год назад.
    Я, конечно, знал про iconv, но очень хотелось решить головоломку - имелся тег, который я знал, что значит в верной кодировке. А остальные я не знал, что значат.
    И в итоге, зная некоторые соответствия символов win-1252 и win-1251, стал отгадывать соответствия к остальным :)
    А дальше - высший пилотаж, это даже iconv не брал.
    Японские иероглифы, испорченные хрен знает как. Знал только как расшифровывается имя одного исполнителя.
    Дальше гуглом и методом тыка искал соответствия к остальным иероглифам.

    7ion, 01 Июня 2011

    Комментарии (19)
  11. JavaScript / Говнокод #6792

    +175

    1. 1
    $(this).parent().parent().parent().siblings('.last-email').removeClass('hidden');

    http://nsk.2gis.ru/media/js/main.js
    оттуда же :)

    Back, 31 Мая 2011

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