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

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

    −98

    1. 1
    2. 2
    3. 3
    4. 4
    К стандартным добавили реквизиты
    ИНН2
    КПП2
    записали туда тоже самое что и ИНН и КПП

    helperapple, 14 Июня 2016

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

    +2

    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
    <?php
    /*
    You can place here your functions and event handlers
    
    AddEventHandler("module", "EventName", "FunctionName");
    function FunctionName(params)
    {
            //code
    }
    */
    
    AddEventHandler('form', 'onBeforeResultAdd', 'my_onBeforeResultAdd');
    CModule::IncludeModule('cleantalk.antispam');
    
    function my_onBeforeResultAdd($WEB_FORM_ID, $arFields, $arrVALUES) {
     $ct_status = COption::GetOptionString('cleantalk.antispam', 'status', '0');
     if ($ct_status == 1) {
      global $APPLICATION;
      $aParams = array();
      $aParams['type'] = 'comment';
      $aParams['sender_email'] = isset($arrVALUES['email']) ? $arrVALUES['email'] : '';
      $aParams['sender_nickname'] = isset($arrVALUES['nickname']) ? $arrVALUES['nickname'] : '';
      $aParams['message_title'] = isset($arrVALUES['title']) ? $arrVALUES['title'] : '';
      $aParams['message_body'] = isset($arrVALUES['message']) ? $arrVALUES['message'] : '';
      $aResult = CleantalkAntispam::CheckAllBefore($aParams, FALSE);
      if (isset($aResult) && is_array($aResult)) {
       if ($aResult['errno'] == 0) {
        if ($aResult['allow'] == 1) {
            //Not spammer - just return;
            return;
        } else {
         if (preg_match('//u', $aResult['ct_result_comment'])) {
          $err_str=preg_replace('/^[^\*]*?\*\*\*|\*\*\*[^\*]*?$/iu','',$aResult['ct_result_comment']);
          $err_str=preg_replace('/<[^<>]*>/iu', '', $err_str);
         } else {
          $err_str=preg_replace('/^[^\*]*?\*\*\*|\*\*\*[^\*]*?$/i','',$aResult['ct_result_comment']);
          $err_str=preg_replace('/<[^<>]*>/i', '', $err_str);
         }
         $APPLICATION->ThrowException($err_str);
         return false;
        }
       }
      }
     }
    }
    ?>

    Четкая конторка написала четкий антиспам-модуль для битрикса и показывает как его нужно использовать. Тут все в одном флаконе - от игнорирования всех стандартов PSR разом до иррациональной реализации ... Пост на хабре: https://habrahabr.ru/company/cleantalk/blog/302800/

    zenn1989, 08 Июня 2016

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

    +2

    1. 1
    public function is_isset($key)

    tazzadar, 06 Июня 2016

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

    0

    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
    93. 93
    94. 94
    95. 95
    96. 96
    97. 97
    98. 98
    #include <fstream>
    #include <iostream>
    #include <string>
    #include <list>
    #include <vector>
    #include <set>
    #include <algorithm>
    
    std::vector<std::string> split(const std::string &text, char sep) {
    	std::vector<std::string> tokens;
    
    	std::size_t start = 0, end = 0;
    	while ((end = text.find(sep, start)) != std::string::npos) {
    		std::string temp = text.substr(start, end - start);
    		if (temp != "") tokens.push_back(temp);
    		start = end + 1;
    	}
    	std::string temp = text.substr(start);
    	if (temp != "") tokens.push_back(temp);
    	return tokens;
    
    }
    
    void ReplaceStringInPlace(std::string& subject, const std::string& search,
    	const std::string& replace) {
    	size_t pos = 0;
    	while ((pos = subject.find(search, pos)) != std::string::npos) {
    		subject.replace(pos, search.length(), replace);
    		pos += replace.length();
    	}
    }
    
    
    using namespace std;
    using std::vector;
    using std::list;
    using std::set;
    
    int main()
    {
    	setlocale(LC_ALL, "rus");
    
    	// задание 1
    	string buff;
    	list<string> allText;
    
    	//задание 2
    	list<string> chap1;
    	list<string> chap2;
    	list<string> chap3;
    	list<string> chap4;
    	list<string> chap5;
    	string::size_type n;
    	int chapter = 0;
    
    	//задание 5
    
    	vector<string> textWord;
    	vector<string> rezult;
    	vector <string>::size_type kolvotext=0;
    	set<string>Unique_word;
    	vector<string>::iterator j;
    
    	ifstream fin("D:\\lab_c__5_text.txt");
    	if (!fin.is_open())
    		cout << "Файл не может быть открыт!\n";
    	else {
    
    		while (getline(fin, buff)) {
    			allText.push_back(buff);
    			//разбиение по главам
    			n = buff.find("CHAPTER");
    			if (n == 0) {
    				chapter++;
    			}
    			if (chapter == 1) {
    				chap1.push_back(buff);
    			}
    			else if (chapter == 2) {
    				chap2.push_back(buff);
    			}
    			else if (chapter == 3) {
    				chap3.push_back(buff);
    			}
    			else if (chapter == 4) {
    				chap4.push_back(buff);
    			}
    			else if (chapter == 5) {
    				chap5.push_back(buff);
    			}
    			//разбиение по словам
    			
    			ReplaceStringInPlace(buff, ".", "");
    			ReplaceStringInPlace(buff, "!", "");
    			ReplaceStringInPlace(buff, "?", "");
    			ReplaceStringInPlace(buff, ",", "");
    			ReplaceStringInPlace(buff, ";", "");
    			ReplaceStringInPlace(buff, ":", "");

    http://cpp.sh/3nlm6
    Хз что там за задание, какая-то долгая и муторная работа с текстом.

    Fluttie, 12 Мая 2016

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

    −4

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    // установлен ли модуль?
      public static function isInstall($module) {
        $data = COption::GetOptionString('main', 'heretic/'.$module, 'N');
        return $data == 'Y';
      }

    И снова гитхаб радует битрикс шлаком. В этот раз, нас радует репозиторий с говорящим описание "Битрикс Еретик" https://github.com/dbfun/bitrix-heretic/blob/master/lib/BHProto.php
    А установлен ли модуль? Таки да. Всегда- да!

    Keeper, 05 Мая 2016

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

    +3

    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
    public class MyEnglishRadGridLocalizationProvider : RadGridLocalizationProvider
    {
        public override string GetLocalizedString(string id)
        {
            switch (id)
            {
                case RadGridStringId.ConditionalFormattingPleaseSelectValidCellValue: return "Please select valid cell value";
                case RadGridStringId.ConditionalFormattingPleaseSetValidCellValue: return "Please set a valid cell value";
                case RadGridStringId.ConditionalFormattingPleaseSetValidCellValues: return "Please set a valid cell values";
                case RadGridStringId.ConditionalFormattingPleaseSetValidExpression: return "Please set a valid expression";
                case RadGridStringId.ConditionalFormattingItem: return "Item";
                case RadGridStringId.ConditionalFormattingInvalidParameters: return "Invalid parameters";
                case RadGridStringId.FilterFunctionBetween: return "Between";
                case RadGridStringId.FilterFunctionContains: return "Contains";
                case RadGridStringId.FilterFunctionDoesNotContain: return "Does not contain";
                case RadGridStringId.FilterFunctionEndsWith: return "Ends with";
                case RadGridStringId.FilterFunctionEqualTo: return "Equals";
                case RadGridStringId.FilterFunctionGreaterThan: return "Greater than";
                case RadGridStringId.FilterFunctionGreaterThanOrEqualTo: return "Greater than or equal to";
                case RadGridStringId.FilterFunctionIsEmpty: return "Is empty";
                case RadGridStringId.FilterFunctionIsNull: return "Is null";

    Зачем мне ресурсы и конфиги локализации, у меня нет времени чтобы ебаться с ними!
    Лучше я захардкожу локализацию ещё раз!

    http://docs.telerik.com/devtools/winforms/gridview/localization/localization

    gost, 12 Апреля 2016

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

    +2

    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
    // TODO: Refactor to one call of 'refineIndexes'
      std::vector<float32_t> *refined_left_1_3 = rec.refineIndexes(LEFT_CHANNEL, std::get<1>(p_l1) * ATT_3dB, INTERP_LINEAR, CROSS_RISE);
      std::vector<float32_t> *refined_right_1_3 = rec.refineIndexes(RIGHT_CHANNEL, std::get<1>(p_r1) * ATT_3dB, INTERP_LINEAR, CROSS_RISE);
      std::vector<float32_t> *refined_left_1_6 = rec.refineIndexes(LEFT_CHANNEL, std::get<1>(p_l1) * ATT_6dB, INTERP_LINEAR, CROSS_FALL);
      std::vector<float32_t> *refined_right_1_6 = rec.refineIndexes(RIGHT_CHANNEL, std::get<1>(p_r1) * ATT_6dB, INTERP_LINEAR, CROSS_FALL);
      std::vector<float32_t> *refined_left_2_3 = rec.refineIndexes(LEFT_CHANNEL, std::get<1>(p_l2) * ATT_3dB, INTERP_PARABOLIC, CROSS_RISE);
      std::vector<float32_t> *refined_right_2_3 = rec.refineIndexes(RIGHT_CHANNEL, std::get<1>(p_r2) * ATT_3dB, INTERP_PARABOLIC, CROSS_RISE);
      std::vector<float32_t> *refined_left_2_6 = rec.refineIndexes(LEFT_CHANNEL, std::get<1>(p_l2) * ATT_6dB, INTERP_PARABOLIC, CROSS_FALL);
      std::vector<float32_t> *refined_right_2_6 = rec.refineIndexes(RIGHT_CHANNEL, std::get<1>(p_r2) * ATT_6dB, INTERP_PARABOLIC, CROSS_FALL);
      
      bool exists_att_3dB = refined_left_1_3->size() > 0 && refined_right_1_3->size() > 0 && refined_left_2_3->size() > 0 && refined_right_2_3->size() > 0;
      bool exists_att_6dB = refined_left_1_6->size() > 0 && refined_right_1_6->size() > 0 && refined_left_2_6->size() > 0 && refined_right_2_6->size() > 0;
    
      if (exists_att_3dB || exists_att_6dB)  {
        float32_t rdTOA_l_3, rdTOA_r_3, rdBW_3, rdSW_3, rdTOA_l_6, rdTOA_r_6, rdBW_6, rdSW_6;
        if (exists_att_3dB && !exists_att_6dB) {
          rdTOA_l_6 = rdTOA_l_3 = refined_left_2_3->back() - refined_left_1_3->front();
          rdTOA_r_6 = rdTOA_r_3 = refined_right_2_3->back() - refined_right_1_3->front();
          rdBW_6 = rdBW_3 = refined_left_2_3->back() - refined_right_2_3->back();
          rdSW_6 = rdSW_3 = refined_left_1_3->front() - refined_right_1_3->front();
        } 
        else if (!exists_att_3dB && exists_att_6dB) {
          rdTOA_l_6 = rdTOA_l_3 = refined_left_2_6->back() - refined_left_1_6->front();
          rdTOA_r_6 = rdTOA_r_3 = refined_right_2_6->back() - refined_right_1_6->front();
          rdBW_6 = rdBW_3 = refined_left_2_6->back() - refined_right_2_6->back();
          rdSW_6 = rdSW_3 = refined_left_1_6->front() - refined_right_1_6->front();
        }
        else {
          rdTOA_l_3 = refined_left_2_3->back() - refined_left_1_3->front();
          rdTOA_r_3 = refined_right_2_3->back() - refined_right_1_3->front();
          rdBW_3 = refined_left_2_3->back() - refined_right_2_3->back();
          rdSW_3 = refined_left_1_3->front() - refined_right_1_3->front();
          rdTOA_l_6 = refined_left_2_6->back() - refined_left_1_6->front();
          rdTOA_r_6 = refined_right_2_6->back() - refined_right_1_6->front();
          rdBW_6 = refined_left_2_6->back() - refined_right_2_6->back();
          rdSW_6 = refined_left_1_6->front() - refined_right_1_6->front();
        }
        float32_t rdTOA_l = (rdTOA_l_3 + rdTOA_l_6) / 2f;
        float32_t rdTOA_r =(rdTOA_r_3 + rdTOA_r_6) / 2f;
        float32_t rdBW = (rdBW_3 + rdBW_6) / 2f;
        float32_t rdSW = (rdSW_3 + rdSW_6) / 2f;
    
        //TODO: Watch for group delay compensation!
        float32_t rdeltaTOA = (rdTOA_l + rdTOA_r - 2 * groupDelay) / (2.0 * AUDIO_SAMPLE_RATE_EXACT);
        float32_t rdeltaBlastWave = rdBW / AUDIO_SAMPLE_RATE_EXACT;
        float32_t rdeltaShockWave = rdSW / AUDIO_SAMPLE_RATE_EXACT;
        //..................................................
      if (sd_init_status == SD_OK && current_settings.log) logFile.close();
    
      refined_left_1_3->clear();
      refined_right_1_3->clear();
      refined_left_2_3->clear();
      refined_right_2_3->clear();
      refined_left_1_6->clear();
      refined_right_1_6->clear();
      refined_left_2_6->clear();
      refined_right_2_6->clear();
    
      delete refined_left_1_3;
      delete refined_right_1_3;
      delete refined_left_2_3;
      delete refined_right_2_3;
      delete refined_left_1_6;
      delete refined_right_1_6;
      delete refined_left_2_6;
      delete refined_right_2_6;

    50 часов без сна... Чувствую я пожалею завтра о том, что сегодня это написал.

    FMB, 06 Апреля 2016

    Комментарии (9)
  9. PHP / Говнокод #19693

    +3

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    <!--
    <?
    echo '11111111111';
    print_r($_POST);
    ?>
    -->

    Всем дебага. Найдено на странице с формой одного крупного проекта.

    fasterrr, 25 Марта 2016

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

    −99

    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
    Процедура СводПродажКоличество_Свод()
         ТаблицаПродаж.Очистить();
         //Здесь с учетом возвратов
         Запрос = Новый Запрос;
         Запрос.Текст = "ВЫБРАТЬ
                             |     ТоварыОрганизацийОбороты.Номенклатура,
                             |     ТоварыОрганизацийОбороты.КоличествоРасход КАК Количество
                             |ИЗ
                             |     РегистрНакопления.ТоварыОрганизаций.Обороты(&Период1, &Период2, Период, Склад = &Склад) КАК ТоварыОрганизацийОбороты";
         Запрос.УстановитьПараметр("Период1"     , НачалоДня(НачДата));
         Запрос.УстановитьПараметр("Период2"     , КонецДня(КонДата));
         Запрос.УстановитьПараметр("Склад"      , СкладПриемник);
         
         Рез=Запрос.Выполнить().Выбрать();
         Пока Рез.Следующий() Цикл
              Нов=ТаблицаПродаж.Добавить();
              Нов.Номенклатура=Рез.Номенклатура;
              Нов.Количество=Рез.Количество;
         КонецЦикла;     
        ТаблицаПродаж.Свернуть("Номенклатура","Количество");
    КонецПроцедуры

    Вот так некоторые суровые красноярские 1С-ники феерически говнокодят в вакууме!

    saturn5, 22 Февраля 2016

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

    +9

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    // получаем текущую дату (день)
    $now_day = $mysqli->query('SELECT DATE(NOW()) now');
    $now_day = $now_day->fetch_assoc();              //получаем текущий день
    $now_day = $now_day['now'];                        //в виде строки
    $now_day = '2016-01-14';

    Кастанедовский код.

    Ja_govnokoder, 02 Февраля 2016

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