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

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

    +169

    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
    htaccess:
    
    DirectoryIndex index.php
    RewriteEngine on
    RewriteBase /
    RewriteRule ^0.html$ style/index.php
    RewriteRule ^1.html$ style/index.php?id=register
    RewriteRule ^2.html$ style/index.php?id=download
    RewriteRule ^3.html$ style/index.php?id=top_chars
    RewriteRule ^4.html$ style/index.php?id=who_online
    RewriteRule ^5.html$ style/index.php?id=top_zeny
    RewriteRule ^6.html$ style/index.php?id=top_mvp
    RewriteRule ^7.html$ style/index.php?id=top_pvp
    RewriteRule ^8.html$ style/index.php?id=top_guild
    RewriteRule ^9.html$ style/index.php?id=who_sell_buy
    RewriteRule ^10.html$ style/index.php?id=first_class
    
    
    php:
    
    <?php
    $url = $REQUEST_URI;
    $url2 = strlen($url);
    if($url2 > 14) { 
    header("location: ./");
    exit;
    }
        
    ?>

    Комментарий от автора:

    "Да тут реврайт для того, чтобы превратить ссылки в одинаковую длину, а потом уже проверять длину ссылки, если больше нормы переадресиция на главную..."

    xynta, 26 Мая 2010

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

    +173

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    # текст сообщений об ошибке
    $errDescr[1] = NETCAT_MODERATION_MSG_ONE;
    $errDescr[2] = NETCAT_MODERATION_MSG_TWO;
    $errDescr[6] = NETCAT_MODERATION_MSG_SIX;
    $errDescr[7] = NETCAT_MODERATION_MSG_SEVEN;
    $errDescr[8] = NETCAT_MODERATION_MSG_EIGHT;
    $errDescr[21] = NETCAT_MODERATION_MSG_TWENTYONE;

    Чьорт, я обожаю этих ребят. Они мои герои.

    telnet, 21 Мая 2010

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

    +87

    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
    float Chislo(char *a, int i)
      {
       int j=i;
       int k=0;
       int r;
       float chis=0;
       while (a[j-1]!=' ' && a[j-1]!='>' && a[j-1]!='-' && a[j-1]!='+' && a[j-1]!='(')
         {j--;
                 //тут перегоняем символ a[j] в цифру r
          if (int(a[j]==48)) r=0;
           else if (int(a[j]==49)) r=1;
            else if (int(a[j]==50)) r=2;
             else if (int(a[j]==51)) r=3;
              else if (int(a[j]==52)) r=4;
               else if (int(a[j]==53)) r=5;
                else if (int(a[j]==54)) r=6;
                 else if (int(a[j]==55)) r=7;
                  else if (int(a[j]==56)) r=8;
                   else if (int(a[j]==57)) r=9;
                     else goto lab8;
          //ShowMessage(a[j]);
    
          chis=chis + r*pow(10,k);
          k++;
         };
       //j--;            //дальше надо обратно до точки и дольше до пробела
       while (a[j]!='.')
         {if (a[j]==' ' || a[j]==':') goto lab8;
          j++;
         };
       j++;
       r=0;
       k=-1;
       
          k--;
          j++;
         };
    
       lab8:
    
       return chis;
      }
    
    // была еще и похощая функция возвращающая результат в виде AnsiString
    
    // вот сколько переменных понадобивлось автору в более чем 700-строчной процедуре
    
    void Progon()
    {
     //
      AnsiString TempR1, TempR2, TempR3, Com,Sport,Team1,Team2, Team, URL1, URL2, page,Champ,Date;
      AnsiString day, month, year, Res, temp, otdyh1, otdyh2;
      int dat;
      //TempR1 = NMHTTP1->Body;
    
       float tot,TM,TB,bol1,bol2,srbol,ver,value,proc;
       AnsiString totS,f1S,ind1S,ind2S, f1ch1S, t_ch1S, f1ch2S, t_ch2S, f1ch3S, t_ch3S, f1ch4S, t_ch4S;
       float fora1,ind1,ind2, f1ch1, t_ch1, f1ch2, t_ch2, f1ch3, t_ch3, f1ch4, t_ch4;
       AnsiString Score1, Score2, s1ch1S, s2ch1S, s1ch2S, s2ch2S, s1ch3S, s2ch3S, s1ch4S, s2ch4S;
    
       AnsiString FIO, ScoreS, RebS, AstS, MinS, Amplua, BlkS, StlS;
       AnsiString TotalS, RebBookS, AstBookS, StlBookS, BlkBookS;
       float Total, RebBook, AstBook, BlkBook, StlBook;
       float PtssNRebsBook, PtssNAstsBook, RebsNAstsBook, PtssNRebsNAstsBook, Book3ptTeam1, Book3ptTeam2;
       int Score, count;
    
       int str1, str2, ind, indd, ig_pos;
       bool win;
    
    // В коде куча такого
    
     while (bukva2[i2]!='/') i2++;
                          i2++;
                          while (bukva2[i2]!='/') i2++;
                          i2++;
                          while (bukva2[i2]!='/') i2++;       // // обошли stl
    
    int *Ptss;
      Ptss = new int[count];
    
      int *Rebs;
      Rebs = new int[count];
    
      int *Asts;
      Asts = new int[count];
    
      int *Blks;
    
    
    while ( ! ( ((bukva[i]=='H') &&(bukva[i+1]=='o') && (bukva[i+2]=='m') && (bukva[i+3]=='e')) || ((bukva[i]=='R') &&(bukva[i+1]=='o') && (bukva[i+2]=='a') && (bukva[i+3]=='d')))) i--;
             while (bukva[i]!='a') i--;
             while ((bukva[i-1]!='>') && (bukva[i-1]!=' ')) i--;
    
    // Внутри циклов всюду работа с экселем
     else
                                 {Form1->App.OlePropertyGet("ActiveSheet").OlePropertyGet("Cells", str1, str2+14).OlePropertyGet("Font").OlePropertySet("Color", -16777216);
                                  Form1->App.OlePropertyGet("ActiveSheet").OlePropertyGet("Cells", str1, str2+15).OlePropertyGet("Font").OlePropertySet("Color", -16777216);
                                 };

    Как -то по фрилансу заказчик хотел доработать то ли парсер, то ли еще что-то (по предоставленным исходникам я так и не смог понять что это за прога, названная "Автониггер" и написанная каким -то студентом толи специально ради выноса мозгов, то ли по еще каким-то причинам вышеобозначенными выкладками, которые вполне возможно содержат в себе какойто гипнотический смысл).

    fenryr, 29 Апреля 2010

    Комментарии (17)
  5. C++ / Говнокод #3030

    +901

    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
    char * b = new char[100];
                    int Length = 0;
                    while ( a[++Length] );
                        for ( int i = 0; i<= 10; i++ )
                          {
                                b[i] = a[i];
                          }
    
    
                        for ( int i = 0; i<= Length; i++ )
                          {
                                move ( y, x+i );
                                printw ( "%c", b[i] );
                          }
                     delete b;
                     return;

    вывод строки в ncurses.
    доставляет школота?

    MyParanoya, 17 Апреля 2010

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

    +144.2

    1. 1
    2. 2
    3. 3
    4. 4
    if ($result)
        return true;
    else
        return false;

    Вот это да...

    Umnik, 14 Апреля 2010

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

    +144.8

    1. 1
    <li><script type="text/javascript" src="http://reformal.ru/tab.js?title=%C3%EE%E2%ED%EE%EA%EE%E4.%F0%F3%3A+%EF%EE+%EA%EE%EB%E5%ED%EE+%E2+%EA%EE%E4%E5&amp;domain=govnokod&amp;color=adadad&amp;align=left&amp;charset=utf-8&amp;ltitle=%CE%F2%E7%FB%E2%FB&amp;lfont=Verdana,%20Geneva,%20sans-serif&amp;lsize=11px&amp;waction=0&amp;regime=1"></script></li>

    А теперь отгадайте с какого это сайта

    hromjo, 10 Апреля 2010

    Комментарии (17)
  8. C++ / Говнокод #2971

    +60.2

    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
    bool CMLayer::operator==(CMLayer ^a, CMLayer ^b)
    {
    	CLayer *pA;
    	CLayer *pB;
    	bool bA = false;
    	bool bB = false;
    
    	// Проверка в катче
    	try
    	{
    		pA = a->m_pelMain;
    	}
    	catch (System::NullReferenceException ^)
    	{
    		pA = NULL;
    		bA = true;
    	}
    
    	// Проверка в катче
    	try
    	{
    		pB = b->m_pelMain;
    	}
    	catch (System::NullReferenceException ^)
    	{
    		pB = NULL;
    		bB = true;
    	}
    
    	if ((bA == true) && (bB == true))
    		return true;
    	else if ((bA == true) || (bB == true))
    		return false;
    
    	return pA == pB;
    }

    Код на Management C++, тот кто его писал был явно в ажуре))))
    Проверяются указатели на внутрении данные, а штоб System::NullReferenceException не выскакивал при сравнее на null все сделанно в катче

    Snake2101, 09 Апреля 2010

    Комментарии (17)
  9. Си / Говнокод #2968

    +129.2

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    9. 9
    new = ngx_pnalloc(cf->pool, sizeof("; domain=") - 1 + domain->len);
        if (new == NULL) {
            return NGX_CONF_ERROR;
        }
    
        p = ngx_cpymem(new, "; domain=", sizeof("; domain=") - 1);
        ngx_memcpy(p, domain->data, domain->len);
    
        domain->len += sizeof("; domain=") - 1;

    Это, между прочим, файл nginx-0.7.62\src\http\modules\ngx_http_userid_ filter_module.c.
    Такие вот разочарования случаются...

    dmitry_113, 08 Апреля 2010

    Комментарии (17)
  10. Java / Говнокод #2916

    +67.4

    1. 1
    2. 2
    Apache POI
    The apache project has a library which called POI that can read and write the HSSF (Horrible Spread Sheet Format)

    Не говнокод, но официальное название формата доставляет :)

    zlob.jc, 02 Апреля 2010

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

    +160.2

    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
    function createCategory(){
    	global $_POST,$_SESSION;
    	$result = mysql_query(sprintf("INSERT INTO `categories` (`id` ,`name` ,`description`)
    									VALUES (NULL , %s, %s);",
    	$this->prepare($_POST['name']), $this->prepare($_POST['description'])));
    	
    	return $result?true:false;
    }
    function prepare($data,$type = 'other'){
    		if($type == 'other'){
    		if(is_numeric($data) or is_float($data)){
    			return "'".$data."'";
    		}else if(is_string($data)){
    			return "'".mysql_real_escape_string($data)."'";
    		}
    		}else if($type == 'pswd'){
    			return "'".sha1($data.SECRET_WORD)."'";
    		}
    	}

    Насколько это защищено от sql injection?

    DanxilLs, 26 Марта 2010

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