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

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

    −165

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    Попытка
    	ДокО.Записать();
    Исключение
     	Попытка
    		ДокО.Записать();
    	Исключение
    	КонецПопытки;	
    КонецПопытки;

    а вдруг!

    alexinzaz, 10 Сентября 2014

    Комментарии (26)
  3. Java / Говнокод #16667

    +118

    1. 1
    protected static final float PI_2 = (float)(Math.PI / 2.0);

    someone, 09 Сентября 2014

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

    +155

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    9. 9
    /**
     * Returns the number of rows affected by the last query
     *
     * @return int
     */
    public function getAffectedRowCount($result)
    {
    	return mysqli_affected_rows($this->getDatabase());
    }

    SugarCRM. Стоит от $35/месяц на одного пользователя.

    Понимаю когда такое встречатеся в стартапах, но когда ты просишь за свой продукт деньги и деньги не малые, то выпускать такое в продакшен... Лично я бы постеснялся.

    VanSanblch, 27 Мая 2014

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

    +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
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    (function () {
    
        if (location.pathname === "/") {
            document.body.id = 'front-page';
        }
        else {
            var path = window.location.pathname.replace('/index.php/', ''),
                splittedPath = path.split('/') || ['', ''],
                category = splittedPath[0],
                subcategory = '';
    
            for (var i = 1; i < splittedPath.length; i++) {
                subcategory += ('-' + splittedPath[i]);
            }
    
            if (category && (typeof category === 'string')) {
                document.body.classList.add('page-' + category);
            }
    
            if (subcategory && (typeof subcategory === 'string')) {
                document.body.classList.add('page-' + subcategory.replace(/^[-]/, ''));
            }
        }
    
    })();

    Сей замысловатый код призван добавить уникальный класс в body для каждой страницы прямо из урла. Предназначалось в качестве костыля для джумлы, так как через пых не работало, а разбираться никто не стал :)

    DrDre, 19 Мая 2014

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

    +156

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    $server = json_decode("{".base64_decode(base64_decode($value))."}");
    
    $name = urldecode($name);
    $path = $uploadFolder . DIRECTORY_SEPARATOR . base64_encode(base64_encode($name));
    
    $cont[$i]->reference = base64_encode(htmlspecialchars(stripslashes(base64_decode($cont[$i]->ref)), ENT_QUOTES));
    
    $value = addslashes(stripslashes(htmlspecialchars(preg_replace("/\'/ui", "", $e["value"]))));

    Код одного из проектов крупной хостинговой компании.

    mckolan, 08 Мая 2014

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

    +156

    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
    /////////////////////////////////// функция обработки операционной системы + поисковые системы
    function getOS($userAgent) {
    // Создадим список операционных систем в виде элементов массива
    $oses = array (
            'iPhone' => '(iPhone)',
    		'Android' => '(android)',
    		'iPad' => '(iPad)',
    		'Blackberry OS' => '(rim)',
            'Windows 3.11' => 'Win16',
            'Windows 95' => '(Windows 95)|(Win95)|(Windows_95)',
            'Windows 98' => '(Windows 98)|(Win98)',
            'Windows 2000' => '(Windows NT 5.0)|(Windows 2000)',
            'Windows XP' => '(Windows NT 5.1)|(Windows XP)',
            'Windows 2003' => '(Windows NT 5.2)',
            'Windows Vista' => '(Windows NT 6.0)|(Windows Vista)',
            'Windows 7' => '(Windows NT 6.1)|(Windows 7)',
    		'Windows 8' => '(Windows NT 6.2)|(Windows 8)',
            'Windows NT 4.0' => '(Windows NT 4.0)|(WinNT4.0)|(WinNT)|(Windows NT)',
            'Windows ME' => 'Windows ME',
            'Open BSD'=>'OpenBSD',
            'Sun OS'=>'SunOS',
            'Linux'=>'(Linux)|(X11)',
            'Safari' => '(Safari)',
            'Macintosh'=>'(Mac_PowerPC)|(Macintosh)',
            'QNX'=>'QNX',
            'BeOS'=>'BeOS',
            'OS/2'=>'OS/2',
    		'Google' => '(Googlebot)',
    		'Yahoo! | AOL' => '(Slurp) | (Yahoo! Slurp) | (Yammybot)',
    		'MSN | Live' => '(MSNBot)',
    		'Ask' => '(Teoma)',
    		'AltaVista' => '(Scooter)',
    		'Alexa' => '(ia_archiver)',
    		'Lycos' => '(Lycos)',
    		'Яндекс' => '(Yandex)',
    		'Рамблер' => '(StackRambler)',
    		'Мэйл.ру' => '(Mail.Ru)',
    		'Aport' => '(Aport)',
            'Search Bot'=>'(nuhk)|(Openbot)|(Slurp/cat)'
    );
      
    foreach($oses as $os=>$pattern){
    if(eregi($pattern, $userAgent)) { // Пройдемся по массиву $oses для поиска соответствующей операционной системы.
    return $os;
    }
    }
    return 'Unknown'; // Хрен его знает, чего у него на десктопе стоит.
    }
    $oc = getOS($_SERVER['HTTP_USER_AGENT']);
    
    
    /////////////////////////////////// #64х64 ава
    function avatar_path($id_user){
    global $ava;
    $ava=glob($_SERVER['DOCUMENT_ROOT'].'/files/ava/'.$id_user.'*');
    if ($ava)return str_replace($_SERVER['DOCUMENT_ROOT'],'',$ava[0]);
    else
    return false;
    }
    ///////////////////////////////////
    function apicms_ava64($users) {
    $ava = avatar_path($users);
    if ($ava){
    echo '<img src="'.$ava.'" alt=""  width="64" height="64"/>';
    }else{
    #если ава не загружена то выводим эту
    echo '<img src="/files/ava/0.png" width="64" height="64">';
    }
    }
    ///////////////////////////////////
    function apicms_ava32($users) {
    $ava = avatar_path($users);
    if ($ava){
    echo '<img src="'.$ava.'" alt=""  width="32" height="32"/>';
    }else{
    #если ава не загружена то выводим эту
    echo '<img src="/files/ava/0.png" width="32" height="32">';
    }
    }
    ///////////////////////////////////
    function apicms_ava40($users) {
    $ava = avatar_path($users);
    if ($ava){
    echo '<img src="'.$ava.'" alt=""  width="40" height="40"/>';
    }else{
    #если ава не загружена то выводим эту
    echo '<img src="/files/ava/0.png" width="40" height="40">';
    }
    }
    ///////////////////////////////////
    #Вывод ошибок
    function apicms_error($var){
    if (!empty($var))echo '<div class="error"><a>'. $var .'</a></div>';
    }

    Из ядра новой "рывалюционной" cms от "известного на весь интернет" автора Евгения Медянкина Kyber. Адрес заповедника говнокода таков: http://apicms.ru

    Strannik1941, 06 Мая 2014

    Комментарии (26)
  8. Куча / Говнокод #14210

    +128

    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
    object Point2D {
    
      type Point2D = Object {def apply(method: Method): method.type#signature}
    
      trait Method {
        type signature
      }
    
      object ToString extends Method {
        override type signature = () => String
      }
    
      object GetX extends Method {
        override type signature = () => Int
      }
    
      object SetX extends Method {
        override type signature = (Int) => Point2D
      }
    
      def Point2D(x: Int, y: Int): Point2D = {
    
        class Dispatch {
    
          def apply(method: Method): method.signature = (method match {
            case ToString => () => s"($x, $y)"
            case GetX => () => x
            case SetX => (x: Int) => Point2D(x, y)
          }).asInstanceOf[method.signature]
    
        }
    
        new Dispatch
      }
    
    }

    LispGovno, 10 Декабря 2013

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

    +131

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    private unsafe bool IsOptionalOutParamSet(out Guid param)
    {
        fixed (Guid* guidPtr = &param)
            return (IntPtr) guidPtr != IntPtr.Zero;
    }

    Ccik, 15 Октября 2013

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

    +8

    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
    void SaveEncryptedFile( const char *text, int len, const char* filename )
    {
    	char* pEncryptedText = new char[strlen(text)+1];
    	string x1 = "you'll";
    	string x2 = "never";
    	string x3 = "get a";
    	string x4 = "password";
    	char l_pBuf[255];
    	sprintf(l_pBuf,"%d",30*11/3);
    	string result = x1+x2+x2+x1+l_pBuf+x3;
    	encryptString(text,pEncryptedText,result.c_str(),strlen(text),result.length()); // там внутри xor
    
    	FILE* pFile = fopen(filename, "wb");
    	if (pFile)
    	{
    		fwrite(pEncryptedText,sizeof(char),len,pFile);
    		fclose(pFile);
    	}
    
    	delete[] pEncryptedText;
    }

    Нашёл в рабочем проекте. Для "расшифровки" файла используется ещё одна такая же функция.

    Deacon, 07 Октября 2013

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

    +26

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    $arr['body'][$row_num] = array(
                $datas,
                $tval,
                $club1_link,
                ($results['results_url'] != '' ? '<a href="' . $results['results_url'] . '"' . ($results['results_class'] != '' ? $results['results_class'] : '') . '>' : '<span>') . $results['results'] . ($results['results_url'] != '' ? '</a>' : '</span>'),
                $club2_link,
                spb_stats_show_media_icons($row),
            );

    было еще хуже. каждая строка была адовый тернарник...

    brainstorm, 16 Сентября 2013

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