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

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

    +8

    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
    void SaveEncryptedFile( const char *text, int len, const char* filename )
    {
    	char* pEncryptedText = new char[strlen(text)+1];
    	string x1 = "you'll";
    	string x2 = "never";
    	string x3 = "get a";
    	string x4 = "password";
    	char l_pBuf[255];
    	sprintf(l_pBuf,"%d",30*11/3);
    	string result = x1+x2+x2+x1+l_pBuf+x3;
    	encryptString(text,pEncryptedText,result.c_str(),strlen(text),result.length()); // там внутри xor
    
    	FILE* pFile = fopen(filename, "wb");
    	if (pFile)
    	{
    		fwrite(pEncryptedText,sizeof(char),len,pFile);
    		fclose(pFile);
    	}
    
    	delete[] pEncryptedText;
    }

    Нашёл в рабочем проекте. Для "расшифровки" файла используется ещё одна такая же функция.

    Deacon, 07 Октября 2013

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

    +26

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    $arr['body'][$row_num] = array(
                $datas,
                $tval,
                $club1_link,
                ($results['results_url'] != '' ? '<a href="' . $results['results_url'] . '"' . ($results['results_class'] != '' ? $results['results_class'] : '') . '>' : '<span>') . $results['results'] . ($results['results_url'] != '' ? '</a>' : '</span>'),
                $club2_link,
                spb_stats_show_media_icons($row),
            );

    было еще хуже. каждая строка была адовый тернарник...

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

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

    +173

    1. 1
    $i = $i++;

    инкремент от бога

    Serious_Andy, 12 Сентября 2013

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

    +157

    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
    public function getIcon()
        {
            switch($this->name)
            {
                case 'Пятигорск':
                    return 'inn_pyatigorsk';
                    break;
                case 'Южная':
                    return 'inn_uzhnaya';
                    break;
                case 'Кавказ':
                    return 'inn_kavkaz';
                    break;
            }
        }
    
    
        public function getBlockId()
        {
            switch($this->name)
            {
                case 'Пятигорск':
                    return 'pyatigorsk';
                    break;
                case 'Южная':
                    return 'uzhnaya';
                    break;
                case 'Кавказ':
                    return 'kavkaz';
                    break;
            }
        }
    
    
    
        public function getImageBlockId()
        {
            switch($this->name)
            {
                case 'Пятигорск':
                    return 'box-pyatigorsk';
                    break;
                case 'Южная':
                    return 'box-uzhnaya';
                    break;
                case 'Кавказ':
                    return 'box-kavkaz';
                    break;
            }
        }
    
    
    
        public function getSliderId()
        {
            switch($this->name)
            {
                case 'Пятигорск':
                    return 'slider_pyatigorsk';
                    break;
                case 'Южная':
                    return 'slider_uzhnaya';
                    break;
                case 'Кавказ':
                    return 'slider_kavkaz';
                    break;
            }
        }
        
        
    
        public function getBooKId()
        {
            $result = '';
            switch($this->name)
            {
                case 'Пятигорск':
                    $result = 'book_pyatigorsk';
                    break;
                case 'Южная':
                    $result = 'book_uzhnaya';
                    break;
                case 'Кавказ':
                    $result = 'book_kavkaz';
                    break;
            }
            return $result;
        }

    рефакторинг "по Украински"

    oxser, 19 Августа 2013

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

    +159

    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
    var preg_match = function(pattern, subject) {
        var result;                                     // Result data
        
        var request = $.ajax({                          // Send request
            type:       "POST",
            url:        "/api/regexp.php",
            async:      false,
            // dataType:   "json",
            data:       {p: pattern, s: subject}
        });
    
        request.done(function(data){                    // Case no errors occured
    
            result = data;
    
        });
    
        return (result == 1) ? true : false;
    }

    Валидация полей формы через регулярные вырежения на сервере

    lynx1983, 01 Августа 2013

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

    +69

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    SOAPMessage msg = ctx.getMessage();
    
    //msg.writeTo(System.out);
    
    ByteArrayOutputStream baos = new ByteArrayOutputStream();
    msg.writeTo(baos);
    logger.trace(baos);

    где у хвалёного log4j метод для передачи его как аргументом java.io.OutputStream???

    defecate-plusplus, 26 Июля 2013

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

    +120

    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
    if (IsSetPrinter)
                            {
                                if (Counter == 0)
                                {
                                    printingIsOkay = PrintDocument(letterIDsString
                                   , row.DocumentTemplateVersionID
                                   , row.DocumentTemplate
                                   , (row.IsHeader_DocumentTemplateVersionIDNull() ? (int?)null : row.Header_DocumentTemplateVersionID)
                                   , (row.IsFooter_DocumentTemplateVersionIDNull() ? (int?)null : row.Footer_DocumentTemplateVersionID)
                                   , true
                                   , Counter
                                   , Counter == documentTemplateVersions.Count - 1);
                                }
                                else
                                {
                                    printingIsOkay = PrintDocument(letterIDsString
                                  , row.DocumentTemplateVersionID
                                  , row.DocumentTemplate
                                  , (row.IsHeader_DocumentTemplateVersionIDNull() ? (int?)null : row.Header_DocumentTemplateVersionID)
                                  , (row.IsFooter_DocumentTemplateVersionIDNull() ? (int?)null : row.Footer_DocumentTemplateVersionID)
                                  , false
                                  , Counter
                                  , Counter == documentTemplateVersions.Count - 1);
                                }
    
                            }
                            else
                            {
                                printingIsOkay = PrintDocument(letterIDsString
                                   , row.DocumentTemplateVersionID
                                   , row.DocumentTemplate
                                   , (row.IsHeader_DocumentTemplateVersionIDNull() ? (int?)null : row.Header_DocumentTemplateVersionID)
                                   , (row.IsFooter_DocumentTemplateVersionIDNull() ? (int?)null : row.Footer_DocumentTemplateVersionID)
                                   , false
                                   , Counter
                                   , Counter == documentTemplateVersions.Count - 1);
                            }

    Я бы выложил весь класс. Он весь такой. Но, думаю, вы поняли кто писал?

    kore_sar, 23 Июля 2013

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

    +14

    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
    template<class Key,class T,class H=Hash<Key>,
        class EQ=equal_to<Key>,class A=allocator<pair<const Key,T> > >
    class hash_map
    {
    public:
        //как map за исключением
        typedef H Hasher;
        typedef EQ key_equal;
        typedef size_t size_type;//из функции Hash видно что size_t нужно, а не int
        typedef Key key_type;
        typedef T mopped_type;
        //делаем объявление
        struct Entry;
        typedef T* iterator;
        typedef const Entry* const_iterator;
        typedef pair<iterator,iterator> equal_r;
    //...
     vector<map<key_type,mopped_type> *> v1;

    Тормозил std::unordered_map. Написал свой.

    LispGovno, 09 Июля 2013

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

    +143

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    function handle($handler) {
        //...
        ob_start();
        include("./handlers/$handler.php");
        $result = ob_get_contents();
        ob_end_clean();
        return $result;
    }

    Требуется результат работы внешнего скрипта вывести посреди работы внутреннего. Есть ли варианты без голимой буферизации выходного потока?

    vistefan, 03 Июля 2013

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

    +107

    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
    function FindPathInPath(path1: string; path2: string): Boolean;
    var
      lst: TStringlist;
      i, l: integer;
    begin
      lst := TStringlist.Create;
      // ----------------------------------------------
      path1 := stringreplaceall(path1, '/', '\');
      path1 := stringreplaceall(path1, '\\', '\');
      // ----------------------------------------------
       path2 := stringreplaceall(path2, '\', '');
       path2 := stringreplaceall(path2, '/', '');
       path2 := stringreplaceall(path2, '"', '');
       path2 := stringreplaceall(path2, '<', '');
       path2 := stringreplaceall(path2, '>', '');
       path2 := stringreplaceall(path2, '?', '');
       path2 := stringreplaceall(path2, '|', '');
       path2 := stringreplaceall(path2, ':', '');
       path2 := stringreplaceall(path2, '*', '');
      // ----------------------------------------------
      for i := 2 to CountString(path1, '\') + 1 do
      begin
        lst.Add(StringField(path1, '\', i));
      end;
      for l := 0 to lst.Count - 1 do
      begin
        if lstrcmpi(pchar(lst[l]), pchar(path2)) = 0 then
        begin
          FindPathInPath := True;
          break;
      end;
      end;
      lst.Free;
      FindPathInPath := false;
      exit;
    end;

    Функция для поиска названий подпапок в файловых путях.
    Трудно судить г..нокод ли это, но так как я все же использовал более изящное решение, то быть посему...

    Stertor, 23 Июня 2013

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