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

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

    +155

    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
    <?php
    if ( !defined("MAGIC_WORD") ) die( "Доступ к данной странице запрещен!" );
    /**
     * ==============================
     * Page Load
     * ============================== 
     */
    $file = phpInjection(sqlInjection(@$_GET['f']));
    switch ($file)
    {
        case "news":
            $module = "news.php";
            break;
        case "lk":
            $module = "profile.php";
            break;
        case "register":
            $module = "register.php";
            break;
        case "stat":
            $module = "stat.php";
            break;
        case "forget":
            $module = "forget.php";
            break;
        case "vote":
            $module = "vote.php";
            break;
        case "webmoney":
            $module = "webmoney.php";
            break;
        default:
            $module = "main.php";
    }
    if (file_exists(ROOT_DIR . "/engine/" . $module))
    {
        include ROOT_DIR . '/engine/' . $module;
    }
    else
    {
        $tpl->result["content"] = "<div class='error'>Ошибка 404. Страница не найдена</div>";
    }
    ?>

    rat4, 17 Ноября 2010

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

    +145

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    <map name="Map">
    	<area shape="rect" coords="0,1,25,14" href="/rada/control/uk/index">
    	<area shape="rect" coords="40,1,64,14" href="/rada/control/ru/index">
    	<area shape="rect" coords="79,1,104,14" href="/rada/control/en/index">
    </map>

    http://portal.rada.gov.ua/
    Это они так ссылки на переключение языков сделали <_<
    Просто пиздец.

    p.s. категории "html" нет, поэтому запостил в РНР.

    olegsuv, 15 Ноября 2010

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

    +223

    1. 1
    2. 2
    3. 3
    mov ax, 4C00h
    mov dx, offset msg
    int 21h

    После этих строк пошёл спать.

    Mencey, 09 Ноября 2010

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

    +75

    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
    case 4096:
                                //chat message
                                tmp = new byte[4];
                                System.arraycopy(rp.getData(), 4, tmp, 0, 4); //nick length
                                int nickl = byteToInt(tmp);
                                System.arraycopy(rp.getData(), 8, tmp, 0, 4); //message length
                                int mlen = byteToInt(tmp);
                                tmp = new byte[nickl];
                                System.arraycopy(rp.getData(), 12, tmp, 0, nickl); //retrieving nick
                                String r2Nick = new String(byteToChar(tmp));
                                tmp = new byte[mlen];
                                System.arraycopy(rp.getData(), 12+nickl, tmp, 0, mlen); //message
                                String msg = new String(byteToChar(tmp));
                                System.out.println("<"+r2Nick+"> "+msg);
                            break;

    UDP чат без сервера (т.е. широковещательные UDP запросы).
    всё из той-же серии, что и мой прошлый пост

    danilissimus, 06 Ноября 2010

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

    +193

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    9. 9
    /**
     * Посылает команду удалённой машине
     * перейти по указанному адресу.
     * Рекомендуется использовать вместо Header('Location: ...');
     */
    function GO( $address)
    {
         Header('Location: '.$address);
    }

    Мартин, 06 Ноября 2010

    Комментарии (26)
  7. 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)
  8. 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)
  9. 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)
  10. Си / Говнокод #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)
  11. 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)