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

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

    +162

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    <div style="position:relative">
    
    Всего товаров: 1<br />
    
    На сумму: 5 750,00
    
    
    
    </div>
    
    <script>$("#korzina").load("/korzina.php",{'fsdfsad':true});</script>

    Сей кодъ подгружается аяксом из скрипта /korzina.php в div#korzina. Естественно, тут же выполняется строчка номер 6, и онъ ещё раз подгружается. И ещё раз. И ещё раз...
    Долго думал, почему так тормозит браузер и почему по vnstat'у 64 кбит/с вверх и 24 вниз при простом просмотре страницы. Думаю, админ сервера (там стоит Apache, кеке) хотел бы удавить аффтара не меньше, чем я. Сайт в продакшне с марта.

    telnet, 20 Октября 2010

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

    +101

    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
    type
      // смотрите, как не надо делать и почему придумали ООП
      TProc = procedure;
      TGoProc = function: boolean;
      TSizeProc = function: integer;
      TGetConfigProc = function: string;
      TApplyConfigProc = procedure(SM: PStringMap);
    
      TDeviceProc = record
        InitControls: TProc;
        MoveControls: TProc;
        Go: TGoProc;
        MaxH, MinH: TSizeProc;
        GetConfig: TGetConfigProc;
        ApplyConfig: TApplyConfigProc;
      end;
    
    const
      DeviceProcs: array [TDevice] of TDeviceProc = (
        (InitControls: ETR.InitControls; MoveControls: ETR.MoveControls; Go: ETR.Go; MaxH: ETR.MaxH; MinH: ETR.MinH; GetConfig: ETR.GetConfig; ApplyConfig: ETR.ApplyConfig),
        (InitControls: TS_NSH.InitControls; MoveControls: TS_NSH.MoveControls; Go: TS_NSH.Go; MaxH: TS_NSH.MaxH; MinH: TS_NSH.MinH; GetConfig: TS_NSH.GetConfig; ApplyConfig: TS_NSH.ApplyConfig),
        (InitControls: TS_IND.InitControls; MoveControls: TS_IND.MoveControls; Go: TS_IND.Go; MaxH: TS_IND.MaxH; MinH: TS_IND.MinH; GetConfig: TS_IND.GetConfig; ApplyConfig: TS_IND.ApplyConfig),
        (InitControls: TP_NSH.InitControls; MoveControls: TP_NSH.MoveControls; Go: TP_NSH.Go; MaxH: TP_NSH.MaxH; MinH: TP_NSH.MinH; GetConfig: TP_NSH.GetConfig; ApplyConfig: TP_NSH.ApplyConfig),
        (InitControls: TP_IND.InitControls; MoveControls: TP_IND.MoveControls; Go: TP_IND.Go; MaxH: TP_IND.MaxH; MinH: TP_IND.MinH; GetConfig: TP_IND.GetConfig; ApplyConfig: TP_IND.ApplyConfig)
      );

    Вот до чего доводит ненависть к ООП.
    ОПП - это хорошо, ООП не надо ненавидеть.

    TarasB, 14 Сентября 2010

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

    −125

    1. 1
    2. 2
    3. 3
    4. 4
    CREATE TABLE IF NOT EXISTS `ls_user_administrator` (
      `user_id` int(11) unsigned NOT NULL,
      UNIQUE KEY `user_id` (`user_id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8;

    Видимо сделать столбец 'administrator' в таблице `ls_user` и ставить в него 1 или 0 - это слишком просто.. Или тут скрыта какая-то оптимизация?
    Дамп спёрт из LiveStreet.

    hybroid, 08 Сентября 2010

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

    +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
    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
    int zerocheck(float a,float b,float c,int d){
    	if(a==0){
    		if(b==0){
    			if(c==0)return 0;
    			else return 1;
    		}else{
    			if(d==1){
    				y_1=c/b;
    				return 2;
    			}else{
    				y2=c/b;
    				return 2;
    			}
    		}
    	}else{
    		if(b==0){
    			if(d==1){
    				x1=c/a;
    				return 3;
    			}else{
    				x2=c/a;
    				return 3;
    			}
    		}else{
    			return 4;
    		}
    	}
    }
    
    int main() {
    	float a,b,c,d,e,f;
    	int ch1,ch2;
    .....
    	ch1=zerocheck(a,b,c,1);
    	ch2=zerocheck(d,e,f,2);
    	if(ch1==1)printf("\nNo answer. 0*X + 0*Y = %f",c);
    	if(ch2==1)printf("\nNo answer. 0*X + 0*Y = %f",f);
    	if(ch1==0 && ch2==0)printf("\nAny variable is answer!");
    	if(ch1==0 && ch2==2)printf("\nX - any. Y = %f",y2);
    	if(ch1==0 && ch2==3)printf("\nX = %f. Y - any",x2);
    	if(ch1==0 && ch2==4)printf("\n%f*X + %f*Y = %f",d,e,f);
    	if(ch1==2 && ch2==0)printf("\nX - any. Y = %f",y_1);
    	if(ch1==2 && ch2==2){
    		if(y_1==y2)printf("\nX - any. Y = %f",y_1);
    		else printf("\nY1 (%f) != Y2 (%f)",y_1,y2);
    	}
    	if(ch1==2 && ch2==3)printf("\nX = %f. Y = %f",x2,y_1);
    	if(ch1==2 && ch2==4){
    		y2=y_1;
    		x2=(f-e*y2)/d;
    		printf("\nX = %f. Y = %f",x2,y_1);
    	}
    	if(ch1==3 && ch2==0)printf("\nX = %f. Y - any",x1);
    	if(ch1==3 && ch2==2)printf("\nX = %f. Y = %f",x1,y2);
    	if(ch1==3 && ch2==3){
    		if(x1==x2)printf("\nX = %f. Y - any",x1);
    		else printf("\nX1 (%f) != X2 (%f)",x1,x2);
    	}
    	if(ch1==3 && ch2==4){
    		x2=x1;
    		y2=(f-d*x2)/e;
    		printf("\nX = %f. Y = %f",x1,y2);
    	}
    	if(ch1==4 && ch2==0)printf("\n%f*X + %f*Y = %f",a,b,c);
    	if(ch1==4 && ch2==2){
    		y_1=y2;
    		x1=(c-b*y_1)/a;
    		printf("\nX = %f. Y = %f",x1,y2);
    	}
    	if(ch1==4 && ch2==3){
    		x1=x2;
    		y_1=(c-a*x1)/b;
    		printf("\nX = %f. Y = %f",x2,y_1);
    	}
    	if(ch1==4 && ch2==4){
    		if(a/b==d/e)printf("\nNo answer. Lines would be parallel or qeual.");
    		else{
    			x1=(b*f-c*e)/(d*b-a*e);
    			y_1=(c-a*x1)/b;
    			printf("\nX = %f. Y = %f",x1,y_1);
    		}
    	}
    	printf("\n");
    	print_lines();
    	return 0;
    }

    Hello, C!

    Second_Fry, 07 Сентября 2010

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

    +101

    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
    private void SetValue(UserStructure item, int id, int tabKey, int elementKey, string newValue)
            {
                if (!item.Chats.ContainsKey(id))
                    throw new KeyNotFoundException(String.Format(
                        "Чат с id = '{0}' недоступен с этой учётной записи", id));
    
                if (item.UserName != item.Chats[id].Own)
                {
                    switch (item.Chats[id].UserPremission)
                    {
                        case UserPremission.AccountLocked:
                            throw new AccessViolationException(String.Format(
                                "Чат с id = '{0}' заблокирован", id));
                    }
                }
    
                int assemblyNumber = item.Chats[id].AssemplyNumber;
    
                if (!_contentManager.AssembplyContent.ContainsKey(assemblyNumber))
                    throw new NotImplementedException(String.Format(
                        "Для сборки = '{0}' контент не реализован", assemblyNumber));
    
                Dictionary<int, TabItem> tabs = _contentManager.AssembplyContent[assemblyNumber];
    
                if (!tabs.ContainsKey(tabKey))
                    throw new NotImplementedException(String.Format(
                        "Вкладка с ключём = '{0}' в сборке = '{1}' не существует", tabKey, assemblyNumber));
    
                if (!tabs[tabKey].Elements.ContainsKey(elementKey))
                    throw new NotImplementedException(String.Format(
                        "Элемент с ключём = '{0}' во вкладке = '{1}' и сборке = '{2}' не существует", 
                        elementKey, tabKey, assemblyNumber));
    
                ElementItem element = tabs[tabKey].Elements[elementKey];
    
                GetSetParametrs getSetParametrs = new GetSetParametrs(item.Chats[id]);
    
                switch (element.ContentType)
                { 
                    case ContentType.text_box:
                        switch (element.Resource)
                        { 
                            case ResourceType.file:
                                getSetParametrs.SetValueToFile(element.Value, newValue);
                                break;
    
    			...............................................
    
                            case ResourceType.change_login:
                                getSetParametrs.SetValueToChangeLogin(item.UserName, newValue);
                                break;
    
                            case ResourceType.change_password:
                                getSetParametrs.SetValueToChangePassword(newValue);
                                break;
                        }
                        break;
    
                    case ContentType.payment_button:
                        switch (element.Resource)
                        {
                            case ResourceType.extend_chat:
                                getSetParametrs.PayForChat();
                                break;
    
                            case ResourceType.clear_credentials:
                                getSetParametrs.SetValueToClearCredentials(element.Price);
                                break;
    
                            case ResourceType.clear_users:
                                getSetParametrs.SetValueToClearUsers(element.Price);
                                break;
                        }
                        break;
    
                    case ContentType.money_transfer:
                        switch (element.Resource)
                        {
                            case ResourceType.money_to_chat:
                                getSetParametrs.SetValueToMoneyTransfer(item.MainChat, newValue);
                                break;
                        }
                        break;
    
                    default:
                        throw new FieldAccessException(String.Format(
                            "Ресурс '{0}' с ключём = '{1}' во вкладке = '{2}' и сборке = '{3}' недоступен для редакирования",
                            element.Resource, elementKey, tabKey, assemblyNumber));
                }
            }

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

    Nigma143, 21 Августа 2010

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

    +163

    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
    <?php
    
    if (isset($_POST['author']))
    {
    $author = $_POST['author'];
    }
    
    if (isset($_POST['text']))
    {
    $text = $_POST['text'];
    }
    
    if (isset($_POST['pr']))
    {
    $pr = $_POST['pr'];
    }
    
    if (isset($_POST['sub_com']))
    {
    $sub_com = $_POST['sub_com'];
    }
    if (isset($_POST['surname']))
    {
    $surname = $_POST['surname'];
    }
    if (isset($_POST['tel']))
    {
    $tel = $_POST['tel'];
    }
    
    if (isset($sab_com))/*если нажата кнопка*/
    {
    if (isset($author)) {trim($author);}/*убираем лишние пробелы*/
    else {$author="";}
    if (isset($text)) {trim($text);}/*убираем лишние пробелы*/
    else {$textr="";}
    if (isset($surname)) {trim($surname);}/*убираем лишние пробелы*/
    else {$surname="";}
    if (isset($tel)) {trim($tel);}/*убираем лишние пробелы*/
    else {$tel="";}
    if (empty($author) or empty($text) or empty($surname) or empty($tel))/*если пустая переменная автор или текст*/
    {
    exit ("<p align ='center'><strong><h1>Вы ввели не всю информацию, вернитесь назад и заполните все поля. </h1></strong> <br><br> <input name='back' type='button' value='Вернуться назад' onclick='javascript:self.back();'>");
    }/*останавливаем программу ,всталяем кнопку,даем команду при нажатии вернутся назад на 1 шаг*/
    
    $author = stripslashes($author);/*охрана от слешов*/
    $text = stripslashes($text);/*охрана от слешов*/
    $surname = stripslashes($surname);/*охрана от слешов*/
    $tel = stripslashes($tel);/*охрана от слешов*/
    $author = htmlspecialchars($author);/*охрана от различных тегов*/
    $text = htmlspecialchars($text);/*охрана от различных тегов*/
    $surname = htmlspecialchars($surname);/*охрана от различных тегов*/
    $tel = htmlspecialchars($tel);/*охрана от различных тегов*/
    if ($pr == 777)
    {
    $address = '[email protected]';
    $sub = "Появился новый заказчик";/**/
    $mes = "Имя заказчика: $author \n Фамилия заказчика: $surname \n телефон заказчика: $tel\nСодержание письма: $text";
    
    $verify = mail ($address,$sub,$mes,"Content-type:text/plain; charset = windows-1251\r\n");
    if ($verify == 'true')
    {
    echo ("<p align ='center'><strong><h1>Ваша заявка успешно отправлена.</h1></strong> <br><br> <input name='back' type='button' value='Вернуться назад' onclick='javascript:self.back();'>");
    }
    }
    else
    {
    exit ("<p>Вы ввели неверные числа с картинки на предыдущей странице. <br> <input name='back' type='button' value='Вернуться назад' onclick='javascript:self.back();'>");
    }
    }
    
    ?>

    Такой вот обработчик.

    http://ruseller-board.com/viewtopic.php?f=41&t=3363

    mrbig66, 13 Августа 2010

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

    +175

    1. 1
    //так как в mysql есть ограничение на джойны (61), делаем следующим образом:...

    ReallyBugMeNot, 11 Августа 2010

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

    −121

    1. 1
    @items = keys %{{ map { $_ => 1} @items }};

    Удаление повторов из массива.
    Вроде и не ГК, но, блин, такие вырвиглазные конструкции меня порой убивают... Мои глаза...

    Мистер Хэнки, 17 Июля 2010

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

    +84

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    <TABLE Border=0 cellpadding=1 cellspacing=1 width=100%>
    <tr><td valign=top width=49%><table Border=0 cellpadding=0 cellspacing=0 width=100% height=100%><tr>
    <td><TABLE valign=top Border=0 cellpadding=0 cellspacing=0 bgcolor=#EEEEEE width=100% height=100%>
    <tr height=1><td align=center colspan=6 class=text2 bgcolor='#91A9B0'>Список подразделений</td></tr>
    <tr height=1><td colspan=6 class='TablHeadText' bgcolor=#EDF1F2><a href='javascript:GoTown(1)'>.. наверх</a></td></tr><tr height=1><td align=center class=TitleName bgcolor=#E0E7E9>&nbsp;</td><td align=center class=TitleName bgcolor=#E0E7E9>Наименование</td><td align=center class=TitleName bgcolor=#E0E7E9>Бранч</td><td align=center class=TitleName bgcolor=#E0E7E9 Title='Группа'>Гр.</td><td align=center class=TitleName bgcolor=#E0E7E9 Title='Форма создания'>Инд. 1</td><td align=center class=TitleName bgcolor=#E0E7E9 Title='Целевая направленность'>Инд. 2</td></tr><tr><td bgcolor=#EDF1F2 width=1 align=right class=link vAlign=top>+</td><td bgcolor=#EDF1F2 class=linktext vAlign=top></td><td bgcolor=#EDF1F2 class='TablHeadText' align=center></td><td align=center bgcolor=#EDF1F2 class='TablHeadText' align=center>ГБ</td><td align=center bgcolor=#EDF1F2 class='TablHeadText' align=center>&nbsp;</td><td align=center bgcolor=#EDF1F2 class='TablHeadText' align=center>&nbsp;</td><td bgcolor=#E0E7E9 class='TablHeadText' align=center>DOH0</td><td align=center bgcolor=#E0E7E9 class='TablHeadText' align=center>РУ</td><td align=center bgcolor=#E0E7E9 class='TablHeadText' align=center>&nbsp;</td><td align=center bgcolor=#E0E7E9 class='TablHeadText' align=center>&nbsp;</td></tr>

    и наверное килобайт 200 такого <td align=center bgcolor=#E0E7E9 class='TablHeadText'> треша

    3.14159265, 09 Июля 2010

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

    +111

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    double f_x (double x, double y, int nom)
    {
      double f_x[]={x+y, x*y, x*y, sqrt(x*x + y*y), cos(x)/sin(y)};
      return f_x[nom];
    }

    Нужна одна из функций :-)

    Goga, 01 Июля 2010

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