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

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

    +1

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    <?php
    
    if ($this->user->is_phone == 1 OR $this->user->is_phone == true OR $this->user->is_phone == 'true') {
        $this->smarty->assign('is_phone', 1);
    } elseif ($this->user->is_phone == 0 OR $this->user->is_phone == false OR $this->user->is_phone == 'false') {
        $this->smarty->assign('is_phone', 0);
    }

    шедевр

    $is_phone принимает значения 0, 1 или null

    m0003r, 16 Октября 2015

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

    +1

    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
    /*дан набор целых чисел. задача: написать функцию.
     которая вернет наибольшее значение из ряда
     неделимое на заданное число. числитель указывается в виде
     порядкового номера, который равен позиции в этом же ряде.
     Позиция в ряде начинается с 1, не с 0.
     */
    do{
    	var prog="true";
    
    	var numlen, div,div0=1, nums=[], res=0, out=[];
    
    // выбор режима заполнения
    
    	var filling= confirm("Хотите заполнить числовой ряд автоматически?");
    
    	if (filling === true)
    	{   
    //определение длинны нового ряда
    	//с проверкой на нулевую длинну ряда
    	
    	do{	
    	var numlen=+((Math.random() * 10).toFixed(0)||10);
    	}
    	while(numlen===0);
    		alert("длинна числового ряда: " + numlen);
    		
    		// автоопределение данных нового ряда
    	for (numlenI = 0;numlenI < numlen;numlenI++)
    	{
    		nums[numlenI] = +((Math.random() * 10).toFixed(0)||"10");
    		alert(nums);
    	};
    
    	}
    	else  // ручное определение данных ряда
    	{
    // что будет. если нажать cancel?
    		nums= ((prompt("Введите новый ряд целых чисел")) || "1");
    		alert("длинна числового ряда: " + nums.length);
    	};
    
    	
    	/*варианты добавления: 
    	 1) добавить подциклы if с alert'ами в виде
    	 //вертикального меню
    	 
    	 */
    	//выбираем порядковый номер числителя с валидатором
    	do {
    		div0 = Number((prompt("Задайте порядковый номер числителя из ряда", 1))||1);
    		var control=0;
    		if(div0<1||div0>numlen||isNaN(div0)){
    			alert("Нужно ввести в пределах диапазона ряда");
    		}
    		else control=1;
    	}
    	while ( control===0);
    	// проверяем деление на ноль
    	do{
    		control=0;
    		
    		if(nums[div0-1]===0){
    			div0=+prompt("Задайте другой порядковый номер числителя");
    		}
    		else{
    		control=1;
    		div = (nums[div0 - 1]);
    		}
    		
    	}
    	while(control===0);
    	
    	
    	
    //заносим неделемы числа
    	alert(" числитель: " + div);
    	for (i = 0;i < nums.length;i++)
    	{
    		if (nums[i] % +div != 0)
    		{
    			out.push(+nums[i]);
    		}
    	};
    
    
    //вычисляем наибольшее значение с валидаторами
    
    res=Math.max.apply(null,out);
    	if(isNaN(res)){
    		alert(div);
    		alert("Делятся все числа \n или что-то пошло не так");
    	}
    	else alert("наибольшее неделимое число из ряда: " + res);
    	prog = confirm("хотите продолжить?");
    } while(prog === true);
    
    alert("Спасибо за тестирование программы 8-) ®©");

    Прошу обливать кодец критикой. Как уменьшить это ковно? Код писался намеренно без использования обьектов, функций и рег выражений. Вся лажа в процессе изучения.

    Neopolitan, 16 Октября 2015

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

    +1

    1. 1
    define("MANAGER_SAIL", 13);

    Менеджер-парус, что непонятного?

    Super_Oleg, 15 Октября 2015

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

    +1

    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
    <?php
    
            if ($fields['emailhide'] == "true" OR $fields['emailhide'] == true OR $fields['emailhide'] == 1) {
                $newEmail = $values['fid2'][0]['val'];
                $cond = 1;
                $this->smarty->assign('is_phone', 1);
            } elseif ($fields['emailhide'] == "false" OR $fields['emailhide'] == false OR $fields['emailhide'] == 0) {
                $newEmail = $fields['email'];
                $cond = 0;
                $this->smarty->assign('is_phone', 0);
            }
            if ($this->user->is_phone == 1 OR $this->user->is_phone == true OR $this->user->is_phone == 'true') {
                $this->smarty->assign('is_phone', 1);
            } elseif ($this->user->is_phone == 0 OR $this->user->is_phone == false OR $this->user->is_phone == 'false') {
                $this->smarty->assign('is_phone', 0);

    Продолжение предыдущего ( #18863 )

    m0003r, 15 Октября 2015

    Комментарии (3)
  6. C++ / Говнокод #18867

    +1

    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
    void __fastcall TExpressProgForm::miAddClick (TObject *Sender)
    {
        /* куча гавна */
    
      if (Sender != miAdd && !SuperUser && GridMain->FieldByName ("ID_city")->AsString != GetValue (DB, "SELECT @EXPRESS_CITY")
          && GetValue (DB, "SELECT 1 FROM debitor_cfo WHERE ID_city=" + GridMain->FieldByName ("ID_city")->AsString) == 1
          && GetValue (DB, "SELECT @EXPRESS_CITY") != 1538)
      {
        FrameEdit->Edit2->ReadOnly = true;
        FrameEdit->CheckBox1->Enabled = false;
        FrameEdit->Panel4->Enabled = false;
        FrameEdit->miDelEmployee->Enabled = false;
      }
    
        /* куча гавна */
    }

    expresscourier, 15 Октября 2015

    Комментарии (0)
  7. JavaScript / Говнокод #18860

    +1

    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
    if (jQuery('.products-items').attr('init-load') !== 'true') {
    	if (jQuery(this).parent().find('ul.subcategory').length > 0) {
    		if (jQuery(this).parent().find('ul.subcategory:first').is(":visible")) {
    
    		} else {
    
    		}
    		getProductsList({
    			search: ''
    		});
    	} else {
    		getProductsList({
    			search: ''
    		});
    	}
    }

    Я просто оставлю это здесь

    phrapatang, 13 Октября 2015

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

    +1

    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
    public function save() {
    		if (!empty(self::$single)) {
    			if (isset(self::$single['id'])) {
    				$id = self::$single['id'];
    				unset(self::$single['id']);
    				$arraySetters = [];
    				foreach (self::$single as $key => $value) {
    					$arraySetters[] = '`'.$key.'` = \''.$value.'\'';
    				}
    				self::$single['id'] = $id;
    				self::$exec = static::$db->prepare('UPDATE '.self::$table.' SET '.implode(', ', $arraySetters).' WHERE `id` = '.$id.' LIMIT 1');
    				return self::$exec->execute();
    			} else {
    				$arrayKeys = [];
    				$arrayValues = [];
    				foreach (self::$single as $key => $value) {
    					$arrayKeys[] = '`'.$key.'`';
    					$arrayValues[] = '\''.$value.'\'';
    				}
    				self::$exec = static::$db->prepare('INSERT INTO '.self::$table.' ('.implode(', ', $arrayKeys).') VALUES ('.implode(', ', $arrayValues).')');
    				if ($status = self::$exec->execute()) {
    					self::$single['id'] = static::$db->lastInsertId();
    				}
    				return $status;
    			}
    		}
    		return false;
    	}

    HiNeX, 12 Октября 2015

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

    +1

    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
    $content = array(
        'html' => '',
        'meta_title' => $sitename,
        'meta_keys' => $sitename,
        'meta_desc' => $sitename,
        'left_menu' => '',
        'path' => ''
    );
    
    if ($_GET['module'] == 'page')
        $_GET['module'] = 'site';
    
    if (!isset($_GET['module'])) {
        $_GET['module'] = 'site';
    }
    
    l('modules');
    
    /* подключение текущего модуля, все остальные грузятся через __autoload() в includes/function.php */
    $file = ROOT_DIR . 'modules/' . $_GET['module'] . '/i.php';
    if (file_exists($file)) {
        //l('load_module '. $file);
        require($file);
    } else {
        echo 'Файл modules/' . $_GET['module'] . '/i.php не найден';
    }
    
    
    if (empty($content['path']) || $content['path'] == '')
        $site->_404();
    
    if (!empty($content['html'])) {
        $content['html'] = fix_content($content['html']);
    }

    почти на уровне 1 != 1

    LesterTeheMolester, 12 Октября 2015

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

    +1

    1. 1
    https://i.imgur.com/S0Ti1EO.png

    Макаки - они везде.

    gost, 06 Октября 2015

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

    +1

    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
    using DocsTaskInfo = System.Collections.Generic.KeyValuePair<int, bool>;
    using DocAndContentType = System.Collections.Generic.KeyValuePair<int, string>;
    using DocAndContentTypeToCount = System.Collections.Generic.Dictionary<System.Collections.Generic.KeyValuePair<int, string>, System.Collections.Generic.KeyValuePair<int, bool>>;
    //...
    private void DocsCountInternal(RefNetDbContainerDirect db, int docType, string contentType,  int status, int count, bool Checked = true){/*...*/}
    //...
    private DocAndContentTypeToCount[] _docCheckTasks;
    private RefNetDbContainerDirect _dbForCheck;
    private void ClearAllDocCounts(RefNetDbContainerDirect dbForCheck)
            {
                _dbForCheck = dbForCheck;
                _docCheckTasks = Enumerable.Repeat(new DocAndContentTypeToCount(), 2).ToArray();
                    //new DocAndContentTypeToCount[2] { new DocAndContentTypeToCount(), new DocAndContentTypeToCount() };
            }
    private void DocsCount(RefNetDbContainerDirect db, int docType, string contentType, int status, int count, bool Checked = true)
            {
                var taskHistory = _docCheckTasks[status];
                var taskKey = new DocAndContentType(docType, contentType);
                var taskInfo = new DocsTaskInfo(count, Checked);
                if(taskHistory.ContainsKey(taskKey))
                    _exceptions.Add(new Exception(string.Format(
                                     "CheckDocsTask with (_.idDocType == {0}) && (_.contentType == \"{1}\") && (_.status == {2}) ) already contained",
                                     docType, contentType, status)));
                taskHistory.Add(taskKey, taskInfo);
            }
    private void CheckAllDocCounts()
            {
                if (AllDocumentsMadeByServer)
                {
                    //1
                    var taskKeys = _docCheckTasks.SelectMany(_ => _.Keys)/*.Distinct()*/.ToArray();
                    foreach (var taskKey in taskKeys)
                    {
                        DocAndContentType key = taskKey;
                        foreach (var statusedTask in _docCheckTasks.Where(statusedTask => !statusedTask.ContainsKey(key)))
                            statusedTask.Add(taskKey, new DocsTaskInfo(0, true));
                    }
                    taskKeys.Select(_ => new
                    {
                        docAndContentType = _,
                        count = _docCheckTasks[0][_].Key + _docCheckTasks[1][_].Key,
                        Checked = _docCheckTasks[0][_].Value && _docCheckTasks[1][_].Value
                    }).ForEach(_ => DocsCountInternal(_dbForCheck, _.docAndContentType.Key, _.docAndContentType.Value, 1, _.count, _.Checked));
            }
                else
                    //0 и 1
                    foreach(var statusedTask in _docCheckTasks.Select((tasks, status) => new {tasks, status}))
                        foreach (var task in statusedTask.tasks)
                            DocsCountInternal(_dbForCheck, task.Key.Key, task.Key.Value, statusedTask.status, task.Value.Key, task.Value.Value);
                _docCheckTasks = null;
                _dbForCheck = null;
            }

    Автору я бы посоветовал утопиться, но как посоветуете отрефакторить?
    Планировалось, что чувак вызывает ClearAllDocCounts, затем много раз метод DocsCount, а потом CheckAllDocCounts.

    USB, 02 Октября 2015

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