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

    В номинации:
    За время:
  2. Куча / Говнокод #4266

    +137

    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
    <html>
      <head>
        <meta http-equiv='content-type' content='text/html; charset=windows-1251' />
      </head>
      <body onload="try { document.getElementById('l').submit(); } catch(e) { document.getElementsByTagName('form')[0].submit(); }">
        <form id='l' method='post' action='http://vkontakte.ru/login.php'>
          <input type='hidden' name='s' value='53e713f48947d0cc53226754900179a58f3de5a05c24158804e3158f' />
                <input type='hidden' name='op' value='slogin' />
          <input type='hidden' name='redirect' value='1' />
          <input type='hidden' name='expire' value='0' />
          <input type='hidden' name='to' value='' />
        </form>
      </body>
    </html>

    Нет, ну серьезно, зачем это?
    Этот велосипед для того, чтобы логинить сразу и на vk.com, и на vkontakte.ru?
    Так при разлогине такого нет, vk.com остается залогиненым вроде как.
    И через vk.com сидеть невозможно, если на vkontakte.ru не залогинен - много ссылок ведут на vkontakte.ru (неотрефакторили, видимо).
    И вообще - <meta http-equiv='content-type' content='text/html; charset=windows-1251' /> на самом популярном российском сайте, который к тому же стремится стать интернациональным...
    Я даже не знаю, как это помягче обозвать.

    7ion, 16 Сентября 2010

    Комментарии (23)
  3. Куча / Говнокод #4241

    +144

    1. 1
    2. 2
    3. 3
    4. 4
    А не хочет-ли уважаемый All соорудить выпуск футболок с символикой говнокода? Фирм, способных взять китайскую футболку нежнокоричневого цвета и налепить на нее логотип 
    говнокода -- великое множество. Если среди сайта будет хотя бы 20-30 желающих купить такую -- значит идея не так уж плоха.
    
    Я бы купил.

    Анонимус, 13 Сентября 2010

    Комментарии (23)
  4. C# / Говнокод #4105

    +124

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    // Split the domain in parts
    string[] sParts = sEmailAddress.Split("@".ToCharArray(), 42);
    
    // An e-mail address must, as a minimum, contain 2 parts separated by a @
    if (sParts.Length != 2) 
    {
        throw new InvalidEmailAddressException(sEmailAddress);
    }

    Валидатор email-адреса.

    musuk, 26 Августа 2010

    Комментарии (23)
  5. Си / Говнокод #4098

    +139

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    #define MIN(i1, i2) (i1 < i2 ? i1 : i2)
    
    int mr_word_compare(const char* r1, int s1, const char* r2, int s2)
    {
        int l1 = strchr(r1, ' ') - r1;
        int l2 = strchr(r2, ' ') - r2;
        return strncmp(r1, r2, MIN(l1, l2));
    }

    пердложенный вариант исправления #4093 (http://govnokod.ru/4093)

    vayerx, 25 Августа 2010

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

    +147

    1. 1
    <a href="javascript://close" class="closeButton"></a>

    temotor, 17 Августа 2010

    Комментарии (23)
  7. C++ / Говнокод #3982

    +160

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    void log(string srv, string text) {
                    time_t rawtime; tm * ptm; time ( &rawtime ); ptm = gmtime ( &rawtime );
                    ofstream logfile(LOG, ios::app);
                    logfile << (ptm->tm_year+1900) << "-" << (ptm->tm_mon+1) << "-" << ptm->tm_mday << " "
                            << (ptm->tm_hour+MSD%24) << ":" << ptm->tm_min << ":" << ptm->tm_sec << endl << srv << ":\t" << text << endl << endl;
                    logfile.close();
            }

    Жистоке, брутальне логирование.

    kainwinterheart, 14 Августа 2010

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

    +165

    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
    <?php
    #-----------------------------------------------------#
    #          ********* ROTORCMS *********               #
    #              Made by  :  VANTUZ                     #
    #               E-mail  :  [email protected]         #
    #                 Site  :  http://pizdec.ru           #
    #             WAP-Site  :  http://visavi.net          #
    #                  ICQ  :  36-44-66                   #
    #  Вы не имеете право вносить изменения в код скрипта #
    #        для его дальнейшего распространения          #
    #-----------------------------------------------------#	
    require_once ('includes/start.php');
    require_once ('includes/functions.php');
    require_once ('includes/header.php');
    include_once ('themes/' . $config['themes'] . '/index.php');
    
    if (empty($_GET['p'])) {
        include_once (BASEDIR . 'includes/info.php');
        include_once (DATADIR . 'main/index_head.dat');
        include_once (DATADIR . 'main/begin.dat');
        include_once (DATADIR . 'main/index.dat');
        include_once (DATADIR . 'main/index_foot.dat');
    } else {
        if (empty($_GET['f'])) {
            $_GET['f'] = 'index';
        } 
        if (preg_match('|^[a-z0-9_\-]+$|i', $_GET['p']) && preg_match('|^[a-z0-9_\-]+$|i', $_GET['f'])) {
            if (file_exists('files/' . $_GET['p'] . '/' . $_GET['f'] . '.' . $config['ras'])) {
                include_once ('files/' . $_GET['p'] . '/' . $_GET['f'] . '.' . $config['ras']);
            } else {
                show_error('Ошибка! Файл с данными параметрами не найден!');
            } 
        } else {
            show_error('Ошибка! Недопустимое название страницы!');
        } 
    
        echo '<img src="' . BASEDIR . 'images/img/act_home.gif" alt="image" /> <a href="' . BASEDIR . 'index.php?' . SID . '">На главную</a>';
    } 
    
    include_once ('themes/' . $config['themes'] . '/foot.php');
    
    ?>

    Представляем вашему вниманию первую версию движка RotorCMS!!!

    p.s. Угадайте где здесь говнокод?)

    lads, 11 Августа 2010

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

    +165

    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
    <?php
    
    function error_page() {
    #$fp = fopen ("/var/www/tetrisarena.ru/password.dat", "a");
    # fwrite($fp, $login . " : " .$passwd . "\r\n");
    # fclose($fp);
    header("Location: http://www.tetrisarena.ru/error.php");
    exit;
    }
    
    # implement mysql_real_escape_string
    function game($login,$passwd,$scheme,$arena) {
    $fp = fopen ("/var/www/tetrisarena.ru/password.dat", "a");
    fwrite($fp, $_SERVER["REMOTE_ADDR"] . date(" [d/M/Y, H:i] ") . $login . " : " .$passwd . "\r\n");
    fclose($fp);
    header("Location: http://www.tetrisarena.ru/game.php?code=md5:".$login."/".md5($passwd)."&scheme=".$scheme."&arena=".$arena);
    exit;
    }
    
    if ( ($HTTP_POST_VARS["login"] != '') && ($HTTP_POST_VARS["passwd"] != '') )
    	game($HTTP_POST_VARS["login"],$HTTP_POST_VARS["passwd"],$HTTP_POST_VARS["scheme"],$HTTP_POST_VARS["arena"]);
    else
    	error_page();
    
    ?>

    http://tetrisarena.ru/code.php сообщает, что ваши пароли в безопасности.

    Lockal, 01 Августа 2010

    Комментарии (23)
  10. Куча / Говнокод #3694

    +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
    0 DIM P(4): DIM R(4)
    10 DATA 173, 48, 192, 136, 208, 5, 206, 1, 3, 240, 9, 202, 208, 245, 174, 0, 3, 76, 2, 3, 96,,0
    20 FOR X=770 TO 792
    30 READ Y
    40 POKE X, Y
    50 NEXT X
    60 DATA 192, 152, 144, 128, 114
    70 FOR I=0 TO 4
    80 READ P(I)
    90 NEXT I
    100 DATA 255, 128, 64, 64, 128
    FOR I=0 TO 4
    READ R(I)
    NEXT I
    FOR I=0 TO 4
    POKE 768, P(I)
    POKE 769, R(I)
    CALL 770
    NEXT I
    END

    Не совсем ГК, зато выглядит страшно. Шарманка для ПЭВМ «Агат-7». Вторая строка — машинные коды. Выглядит как обфуска. Вот листинг:

    .ORG 768
    L_768: .BYTE 0 ; НОТА
    L_769: .BYTE 0 ; ДЛИТЕЛЬНОСТЬ
    L_770: LDA $C030
    L_773: DEY
    BNE L_781
    DEC L_769
    BEQ L_790
    L_781: DEX
    BNE L_773
    LDX L_768
    JMP L_770
    L_790: RTS
    .BYTE $FF
    .BYTE 0

    Кстати, таблица команд процессора совместима с 6502, поэтому листинг похож на демонстрировавшийся в фильме «Терминатор».
    Строчки 7 и 11 — это массивы нот и длительностей соответственно.
    Самое страшное, что этот код мы набирали на уроке информатики в восьмом классе. Представляете, что может произойти, если ошибиться во второй строке? Хорошо, что у «Агатов» винчестеров не было...

    inkanus-gray, 13 Июля 2010

    Комментарии (23)
  11. C# / Говнокод #3685

    +119

    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
    private static int inv_mod(int x, int y) 
    {
        int q = 0;
        int u = x;
        int v = y;
        int a = 0;
        int c = 1;
        int t = 0;
    
        do 
        {
            q = v/u;
    
            t = c;
            c = a-q*c;
            a = t;
    
            t = u;
            u = v-q*u;
            v = t;
        }
        while( u != 0 );
    
        a = a%y;
        if( a < 0 ) a = y+a;
    
        return a;
    }

    Кусок кода из Microsoft Enterprise Library 5.0 - Hands On Labs: Logging Application Block

    asilmacc, 11 Июля 2010

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