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

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

    +96

    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
    procedure TRegistry.GetKeyNames(Strings: TStrings);
    var
      Len: DWORD;
      I: Integer;
      Info: TRegKeyInfo;
      S: string;
    begin
      Strings.Clear; // Очистить список перед добавлением. Это пиздец, как важно!!! Программист не додумается сам очистить список. 
      if GetKeyInfo(Info) then
      begin
        SetString(S, nil, Info.MaxSubKeyLen + 1);
        for I := 0 to Info.NumSubKeys - 1 do
        begin
          Len := Info.MaxSubKeyLen + 1;
          RegEnumKeyEx(CurrentKey, I, PChar(S), Len, nil, nil, nil, nil);
          Strings.Add(PChar(S));
        end;
      end;
    end;

    Из registry.pas (Delphi 2009)
    Все регистровые функции зашкварены этим, не знаю, как в семерке; это значит, что в цикле их без дерьма не поюзаешь.
    Очень обидно.

    brutushafens, 26 Июня 2014

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

    +156

    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
    public function catalog_add() {
            
            if (Route::is_post()) {
                $this->L->view = false;
                $errors = array();
    
                $Company = new Model_Companies();
                $Company->fillFromArray($_POST['companies']);
    
                if (!$Company['cats_id']) {
                    $errors[] = 'Не выбрана категория';
                }
                if (!preg_match('/^\d{2}\.\d{2}\.\d{4}$/', $Company['startdate'])) {
                    $errors[] = 'Неверный формат начала периода размещения';
                }
                if (!preg_match('/^\d{2}\.\d{2}\.\d{4}$/', $Company['enddate'])) {
                    $errors[] = 'Неверный формат конца периода размещения';
                }
                if (!preg_match('/^\d{2}\.\d{2}\.\d{4}$/', $Company['position_start'])) {
                    $errors[] = 'Неверный формат начала действия приоритетной позиции';
                }
                if (!preg_match('/^\d{2}\.\d{2}\.\d{4}$/', $Company['position_end'])) {
                    $errors[] = 'Неверный формат конца действия приоритетной позиции';
                }
    
                //проверка на существования графика работы
                $noSchedule = true;
                foreach ($_POST['schedule'] as $key => $value) {
                    if (isset($value['work'])) {
                        $noSchedule = false;
                        break;
                    }
                }
    
                if ($noSchedule) {
                    $errors[] = 'Не указано ни одного рабочего дня';
                } else {
                    //проверка рабочего времени
                    foreach ($_POST['schedule'] as $key => $value) {
                        if (isset($value['work'])) {
                            if (!preg_match('/^(2[0-3]|[01][0-9]):[0-5][0-9]$/', $value['start']) || !preg_match('/^(2[0-3]|[01][0-9]):[0-5][0-9]$/', $value['end'])) {
                                $errors[] = 'Неверный формат времени работы в ' . strtolower(Model_Schedule::$days[$key]);
                            } else {
                                //проверка грамотности, конец больше начала
                                if (strtotime($value['start']) > strtotime($value['end'])) {
                                    $errors[] = 'Конец работы должен быть позже времени начала в ' . strtolower(Model_Schedule::$days[$key]);
                                } else {
                                    //провека обеда
                                    if (isset($value['lunch'])) {
                                        if (!preg_match('/^(2[0-3]|[01][0-9]):[0-5][0-9]$/', $value['lunch_start']) || !preg_match('/^(2[0-3]|[01][0-9]):[0-5][0-9]$/', $value['lunch_end'])) {
                                            $errors[] = 'Неверный формат времени обеда в ' . strtolower(Model_Schedule::$days[$key]);
                                        } else {
                                            //проверка грамотности границ обеда
                                            if (strtotime($value['lunch_start']) > strtotime($value['lunch_end'])) {
                                                $errors[] = 'Конец обеденного перерыва должен быть позже времени начала в ' . strtolower(Model_Schedule::$days[$key]);
                                            } else {
                                                //проверка что обед вмещается в рабочее время
                                                if ($value['lunch_start'] < $value['start'] || $value['lunch_end'] > $value['end']) {
                                                    $errors[] = 'Обед выходит за рамки указанного рабочего времени в ' . strtolower(Model_Schedule::$days[$key]);
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
    
                //todo: сделать проверку на занятость приоритетной позиции в выбраной категории в указанный период
    
                if (!count($errors)) {
                    //если нет ошибок то пишем
                    $Company->save();
    
                    foreach ($_POST['schedule'] as $key => $value) {
                        if (isset($value['work'])) {
                            $Schedule = new Model_Schedule();
                            $Schedule->fillFromArray($value);
                            $Schedule['day'] = $key;
                            $Schedule['companies_id'] = $Company['id'];
                            $Schedule->save();
                        }
                    }
                }
    
                echo json_encode($errors);
            }
        }

    проверки, такие проверки

    Serious_Andy, 17 Мая 2014

    Комментарии (32)
  4. Perl / Говнокод #15973

    −149

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    9. 9
    my $query = "select * from client where <...>";
    ...
    $params{'first_name'} = $v_client[6];
    if (defined $v_client[11]) {
         $params{'address1'} = $v_client[11];
    }
    if (defined ($v_client[10])) {
      $params{'zip_code'} = $v_client[10];
    }

    No comments.

    bormand, 13 Мая 2014

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

    +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
    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
    using System;
    using System.Globalization;
    using System.IO;
     
    namespace CyberForumTasks
    {
        class Program
        {
            static void Main()
            {
                var text = File.ReadAllText("C:\\test.txt");
     
                for (var i = 0; i < text.Length - 1; i++)
                {
                    if (text[i].ToString(CultureInfo.InvariantCulture).Contains("1"))
                        if (text[i + 1].ToString(CultureInfo.InvariantCulture).Contains("0"))
                            if (text[i + 2].ToString(CultureInfo.InvariantCulture).Contains("1"))
                                Console.Write("101");
     
                    if (text[i].ToString(CultureInfo.InvariantCulture).Contains("1"))
                        if (text[i + 1].ToString(CultureInfo.InvariantCulture).Contains("1"))
                            if (text[i + 2].ToString(CultureInfo.InvariantCulture).Contains("0"))
                                Console.Write("110");
     
                    if (text[i].ToString(CultureInfo.InvariantCulture).Contains("1"))
                        if (text[i + 1].ToString(CultureInfo.InvariantCulture).Contains("1"))
                            if (text[i + 2].ToString(CultureInfo.InvariantCulture).Contains("1"))
                                Console.Write("111");
     
                    if (text[i].ToString(CultureInfo.InvariantCulture).Contains("1"))
                        if (text[i + 1].ToString(CultureInfo.InvariantCulture).Contains("0"))
                            if (text[i + 2].ToString(CultureInfo.InvariantCulture).Contains("0"))
                                if (text[i + 3].ToString(CultureInfo.InvariantCulture).Contains("0"))
                                    Console.Write("1000");
     
                    if (text[i].ToString(CultureInfo.InvariantCulture).Contains("1"))
                        if (text[i + 1].ToString(CultureInfo.InvariantCulture).Contains("0"))
                            if (text[i + 2].ToString(CultureInfo.InvariantCulture).Contains("0"))
                                if (text[i + 3].ToString(CultureInfo.InvariantCulture).Contains("1"))
                                    Console.Write("1001");
     
                    if (text[i].ToString(CultureInfo.InvariantCulture).Contains("1"))
                        if (text[i + 1].ToString(CultureInfo.InvariantCulture).Contains("0"))
                            if (text[i + 2].ToString(CultureInfo.InvariantCulture).Contains("1"))
                                if (text[i + 3].ToString(CultureInfo.InvariantCulture).Contains("0"))
                                    Console.Write("1010");
                }
            }
        }
    }

    Дан файл целых чисел. Продублировать в нем все числа, принадлежащие диапазону 5..10.

    Psilon, 09 Января 2014

    Комментарии (32)
  6. Pascal / Говнокод #14321

    +148

    1. 1
    2. 2
    3. 3
    Милости прошу опробовать новую модификацию моего прокси-чекера:
    http://rghost.ru/51449039
    пароль на архив - ситэ; конкретно, то место, куда слетают все опубликованные пароли и учетки.

    Выражаю огромную благодарность более опытным товарищам, которые охотно шли мне навстречу, делясь опытом и указывая правильный путь.
    Я не могу не упомянуть имен этих замечательных людей:
    Bormand
    1024-
    Kegdan
    Anonimb

    Stertor, 06 Января 2014

    Комментарии (32)
  7. Куча / Говнокод #13967

    +132

    1. 1
    2. 2
    СТАВЬ ЛАЗАНЬЮ ЛЮКСЕНБУРГ ЛЕЙС ЛОЙС ЛАЙК ЛАВАНДЫШ ЛАПШУ ЛЕЙКАПЛАСТЫРЬ ЛАРУКРОФТ ЛУГАНСК ЛАНТАНОЙД ИЛЕ У ТИБЯ
    БУДАПЕШТ БАГЕТ БАГОР БАМБАЛЕЙЛА БАГРАТИОН БАТРУДИНАФ БАРАБИТ БУЛКА БИШКЕК

    СТАВЬ МНЕ ЛАЙК КАРОЧ ИЛЕ ТЫ ЛАЛКА С ГАРЯЩИМ ПУКАНОМ АЗАЗАЗАЗАЗАЗАШЩЗВШАЫВГАЛДВЫОАЛВЫОАРАРА)) 00)0)))нульскопка

    PragramistOtBoga, 18 Октября 2013

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

    +160

    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
    function casinoGamesParser($body, $infoBoxyLink)
    {
    	// try ruletka
    	$ruletkaReplaceCode = read_file('system/application/views/site/boxy-rul.php');
    	$ruletkaReplaceCode = str_replace('<?php echo $boxylink;?>', $infoBoxyLink, $ruletkaReplaceCode);
    	$ruletkaReplaceCode = str_replace('<?php echo site_url();?>', site_url(), $ruletkaReplaceCode);
    	$delimiterFirst = "<p>фун_рулетка(";
    	$delimiterLast = ")енд</p>";
    	$keyword = between2finer($body, $delimiterFirst, $delimiterLast);
    	if (!empty($keyword)) $ruletkaReplaceCode = str_replace('<?php echo $keyword ?>', $keyword, $ruletkaReplaceCode);
    	if (!empty($keyword)) return str_replace($delimiterFirst.$keyword.$delimiterLast, $ruletkaReplaceCode.$keyword, $body);
    	// try poker
    	$pokerReplaceCode = read_file('system/application/views/site/boxy-poker.php');
    	$pokerReplaceCode = str_replace('<?php echo $boxylink;?>', $infoBoxyLink, $pokerReplaceCode);
    	$pokerReplaceCode = str_replace('<?php echo site_url();?>', site_url(), $pokerReplaceCode);
    	$delimiterFirst = "фун_покер(";
    	$delimiterLast = ")енд";
    	$keyword = between2finer($body, $delimiterFirst, $delimiterLast);
    	if (!empty($keyword)) $pokerReplaceCode = str_replace('<?php echo $keyword ?>', $keyword, $pokerReplaceCode);
    	if (!empty($keyword)) return str_replace($delimiterFirst.$keyword.$delimiterLast, $pokerReplaceCode.$keyword, $body);
    	// if nothing found - return original body
    	return $body;
    }

    Берут РНР файл как текстовый в переменную и заменяют в нем вставки РНР кода <?php echo $keyword ?>. Получается РНР парсит свой код str_replace*ом. Ну вобщем неплохо получилось запутать китайских шпионов!

    increazon, 14 Октября 2013

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

    +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
    87. 87
    88. 88
    89. 89
    90. 90
    91. 91
    92. 92
    #include "unpacker.h"
    
    Unpacker::Unpacker(char *name) {
        _splitString = new char*[16];
        _ctx = SDL_RWFromFile(name, "rb");
    }
    
    Unpacker::~Unpacker() {
        delete _splitString;
        SDL_RWclose(_ctx);
        SDL_FreeRW(_ctx);
    }
    
    Dir *Unpacker::getDir(char *path) {;
        int index = 1;
        char pth[256];
        char name[80];
        char *str = "";
        if (!path)
            return NULL;
        _split(path);
        SDL_RWseek(_ctx, 2, SEEK_SET);
        pth[0] = '/'; pth[1] = '\0';
        while (_splitString[index]) {    
            Uint16 count;
            Uint32 hash;
            str = _splitString[index];
            hash = _hash(str);
            count = SDL_ReadLE16(_ctx);
            for (int i=0; i<count; i++) {
                Uint32 h;
                Uint32 offset;
                h = SDL_ReadLE32(_ctx);
                offset = SDL_ReadLE32(_ctx);
                if (hash == h) {
                    Uint8 size;
                    Uint32 curPos = SDL_RWtell(_ctx);
                    SDL_RWseek(_ctx, offset, SEEK_SET);
                    SDL_RWread(_ctx, &size, 1, 1);
                    SDL_RWread(_ctx, name, size, 1);
                    name[size] = '\0';
                    if (!strcmp(str, name)) {
                        if (_splitString[index+1]) {
                             strcat(pth, str);
                             strcat(pth, "/");
                        }
                        break;
                    } else {
                        if (i == count-1)
                            return NULL;
                        SDL_RWseek(_ctx, curPos, SEEK_SET);
                    }
                }
            }
            index++;
        }
        Dir *dir = new Dir;
        strcpy(dir->name,  str);
        strcpy(dir->path, pth);
        dir->dirsCount = SDL_ReadLE16(_ctx);
        dir->dirsOffset = SDL_RWtell(_ctx);
        SDL_RWseek(_ctx, dir->dirsCount*8, SEEK_CUR);
        dir->filesCount = SDL_ReadLE16(_ctx);;
        dir->filesOffset = SDL_RWtell(_ctx);
        return dir;
    }
    
    File *Unpacker::getFile(char *path) {
        char pth[256];
        char nm[80];
        int index = 2;
        _split(path);
        if (!_splitString[1])
            return NULL;
        if (_splitString[2]) {
            strcpy(pth, "/");
            strcpy(pth, _splitString[1]);
            strcat(pth, "/");
        } else {
            Dir *dir = getDir("/");
            return getFile(dir, _splitString[1]);
        }
        while (1) {
            if (_splitString[index+1]) {;
                strcat(pth, _splitString[index]);
                strcat(pth, "/");
            } else {
                strcpy(nm, _splitString[index]);
                break;
            }
            index++;
        }

    Нашел у себя на диске - старое творенье, когда я был мал и глуп... Распаковщик архива на своего формата на основе zlib.

    Pythoner, 09 Октября 2013

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

    +116

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    Кто может посоветовать сайт, на котором стоит потроллить?
    Хочу отточить свои навыки.
    
    З.Ы. Представляю, как скрежещут зубами тарас и борманд. Слово кабальеро - как только кто нибудь посоветует, заминусую топик.
     )

    Флудинг, троллинг и спаминг.

    Stertor, 16 Сентября 2013

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

    +163

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    ...
    $str = preg_replace ( array_keys ( $new ), array_values ( $new ), $str );
    $str = trim ( $str );
    $str = str_replace ( "       ", "_", $str );
    $str = str_replace ( "      ", "_", $str );
    $str = str_replace ( "     ", "_", $str );
    $str = str_replace ( "    ", "_", $str );
    $str = str_replace ( "   ", "_", $str );
    $str = str_replace ( "  ", "_", $str );
    $str = str_replace ( " ", "_", $str );

    develx0, 16 Сентября 2013

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