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

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

    +169

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    $page = $_GET["p"];
    if(!$page) $page="index";
    
    // ===== Собираем страницу =====
    
    readfile("temp/top.html"); // Верхушка шаблона
    readfile("pages/$page.txt"); // Собственно подгружаем контент, в зависимости от значения переменной $page
    readfile("temp/down.html"); // Низ шаблона

    Нано движок на файловой бд

    Мартин, 20 Февраля 2011

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

    +145

    Интересно, а есть тут еще те, которые помнят этого персонажа в футере сайта?
    Вообще, есть ли у кого скриншоты старых версий сайта? Говнопость памяти

    striker, 17 Февраля 2011

    Комментарии (38)
  4. Pascal / Говнокод #5653

    +93

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    for i:=1 to 100 do
    begin
    for j:=1 to f do
    begin
    ...
    end;
    f:=f+1000;
    end;

    Бедные дельфины, им не повезло с циклами.

    CHayT, 12 Февраля 2011

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

    +153

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    this.exec = function(code,op){
      op = op || 0;
      for(cp=0;cp<code.length;cp++){
        if(code[cp]=='op'){this.stack.push(op)}
    	else if(code[cp].isNumber){this.stack.push(parseFloat(code[cp]))}
    	else if(this.vars[code[cp]] != undefined){this.stack.push(this.vars[code[cp]])}
    	else if(this.refs[code[cp]] != undefined){this.call(code[cp])}
    	else if(this.mathOp.oneOf(code[cp])){this.mathOp(code[cp])}
    	else if(code[cp] == '->'){cp++;this.vars[code[cp]]=this.stack.pop();}
      }
    }

    Еще один говнокод из моего известного некоторым особо внимательным личностям проекта

    art543484, 02 Января 2011

    Комментарии (38)
  6. Си / Говнокод #4902

    +141

    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
    static int16_t have_upper_dot(cell *c)
    {
     cell *cc;
     int16_t H;
     H=my_bases.ps;
     cc=c->prev;
     if ((cc->flg & c_f_dust) &&
          (c->w>4 && cc->h>=2 && cc->w>=2 &&
    	(abs(cc->h-cc->w)<=H/6 || cc->h<cc->w && cc->w-cc->h<=H/4) &&
    	cc->col+1>=c->col && cc->col+cc->w-5<=c->col+c->w ||
           c->w<=4 && abs(c->col-cc->col+(c->w-cc->w)/2)<=2) &&
          cc->row+cc->h-2<=my_bases.b2)
       return 1;
     cc=c->next;
     if ((cc->flg & c_f_dust) &&
          (c->w>4 && cc->h>=2 && cc->w>=2 &&
    	(abs(cc->h-cc->w)<=H/6 || cc->h<cc->w && cc->w-cc->h<=H/4) &&
    	cc->col+1>=c->col && cc->col+cc->w-5<=c->col+c->w ||
           c->w<=4 && abs(c->col-cc->col+(c->w-cc->w)/2)<=2) &&
          cc->row+cc->h-2<=my_bases.b2)
       return 1;
     return 0;
    }

    Из одной OCR программы.

    f0ma, 12 Декабря 2010

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

    +179

    1. 1
    eval(file_get_contents("../myClass.php"));

    Интересно, он подозревает о существовании функции include ?

    DropWorld, 29 Ноября 2010

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

    +147

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    9. 9
    int count(int a)
    {
        int cnt=0;
        while(a)
        {
             ++cnt;
        }
        return cnt;
    }

    Ф-ция для подсчета количества знаков числа. Взято с www.cyberforum.ru

    psina-from-ua, 28 Ноября 2010

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

    +127

    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
    if ((textBox2.Text != "") && (textBox3.Text != "") && (Convert.ToInt32(textBox2.Text) < Convert.ToInt32(textBox3.Text)))
    {
        int наименование = 0;
        string несозданы = null;
        int количество = 0;
        bool накладнаясоздана = false;
        int накладная = 0;
        наименование = Convert.ToInt32(comboBox1.SelectedValue);
        string наименованиест = наименование.ToString();
        for (int i = Convert.ToInt32(textBox2.Text); i < Convert.ToInt32(textBox3.Text) + 1; i++)
        {
            bool одинаково = false;
            foreach (СкладDataSet.ПоступлениеRow row in складDataSet.Поступление.Rows)
            {
                if ((i == row.__) && (наименованиест == row.Наименование))
                {
                    одинаково = true;
                    несозданы += " " + i.ToString();
                    yes = 2;
                }
            }
            if (одинаково == false)
            {
                складDataSet.Состояние.AddСостояниеRow(наименование.ToString(), i.ToString(), "2", "1", "");
                if (накладнаясоздана == false)
                {
                    поступлениесписокTableAdapter.Insert(Convert.ToDateTime(dateTimePicker1.Text).ToString(), наименование, "000", richTextBox1.Text);
                    поступлениесписокTableAdapter.Fill(складDataSet.Поступлениесписок);
                    накладнаясоздана = true;
                    foreach (СкладDataSet.ПоступлениесписокRow row in складDataSet.Поступлениесписок.Rows)
                    { if (накладная <= row.Код)  накладная = row.Код; }
                }
                поступлениеTableAdapter.Insert(наименование, i, накладная.ToString());
                количество = количество + 1;
            }
        }
        поступлениесписокTableAdapter.Update(Convert.ToDateTime(dateTimePicker1.Text).ToString(), наименование, количество.ToString(), richTextBox1.Text, накладная, Convert.ToDateTime(dateTimePicker1.Text).ToString(), наименование, "000", richTextBox1.Text);
        if (yes == 2)
            MessageBox.Show(comboBox1.Text + " - " + несозданы + " не созданы т.к. существуют в базе", "Не созданы...", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
        Close();
    }
    else
        MessageBox.Show("Поле пустое, введите номер прибора!!!", "Внимательнее!", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);

    на готдотнете видел один чел вопрос задавал: http://www.gotdotnet.ru/forums/3/133079/
    автору там намекали, что хорошо было бы, чтоб он переделал код, но автор глубоко забил

    Pauchok-Anaynckiy, 22 Ноября 2010

    Комментарии (38)
  10. PHP / Говнокод #4698

    +146

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    <?$APPLICATION->IncludeComponent("bitrix:system.auth.form","",Array(
         "REGISTER_URL" => "register.php",
         "PROFILE_URL" => "profile.php"
         "SHOW_ERRORS" => "Y" 
         )
    );?>

    Этот код из официальной документации Битрикса.
    Обратите внимание перечисление в массиве.

    Ох уж этот удивительный Битрискс... xD

    banji, 21 Ноября 2010

    Комментарии (38)
  11. Pascal / Говнокод #4646

    +106

    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
    procedure FirstStep (var Text: string);
    // Удаление комментариев <!--...-->, переводов строк, раскрытие тегов <br>, удаление парных пробелов:
    var
      P:     Integer;
      State: Integer;
      Idx:   Integer;
      Cnt:   Integer;
      NL:    Boolean;
    begin
      State := 0;
      P     := 1;
      NL    := True;
      while P <= Length (Text) do
      begin
        if Text[P] in [#9,#10,#13] then Text[P] := ' ';
        case State of
          0: case Text[P] of
               '<': State := 1;
               ' ': begin
                      Idx := P;
                      State := 9;
                    end; { }
               else NL := False;
             end; {case}
          1: case Text[P] of
               '!': State := 2;
               'b': State := 7;
               else
               begin
                 Dec (P);
                 State := 10;
               end; {else}
             end; {case}
          2: if Text[P] <> '-' then
             begin
               Dec (P);
               State := 10;
             end else State := 3;
          3: if Text[P] = '-' then
             begin
               Idx   := P - 3;
               State := 4;
             end else
             begin
               Dec (P);
               State := 10;
             end; {if}
          4: if Text[P] = '-' then State := 5;
          5: if Text[P] = '-' then State := 6 else State := 4;
          6: if Text[P] = '>' then
             begin
               Delete (Text, Idx, P - Idx + 1);
               P := Idx - 1;
               while (P >= 1) and (Text[P] = ' ') do Dec (P);
               State := 0;
             end else State := 4;
          7: if Text[P] = 'r' then State := 8 else State := 0;
          8: begin
               if Text[P] = '>' then
               begin
                 Text[P-3] := #13;
                 Text[P-2] := #10;
                 Delete (Text, P - 1, 2);
                 Dec (P, 2);
                 NL := True;
               end; {if}
               State := 0;
             end; {8}
          9: if Text[P] <> ' ' then
             begin
               Cnt := P - Idx;
               if NL then
               begin
                 Delete (Text, Idx, Cnt);
                 Dec (Idx);
               end else if Cnt > 1 then Delete (Text, Idx, Cnt - 1);
               P := Idx;
               State := 0;
             end; {if}
          10: if Text[P] = '>' then State := 0;
        end; {case}
        Inc (P);
      end; {while}
    end; {proc FirstStep}

    Кусок парсера HTML.

    Arigato, 16 Ноября 2010

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