1. PHP / Говнокод #17869

    +164

    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
    function addnews($str1="", $str2="", $str3="", $str4="", $str5=""){
      $num = 0;
      $done = 0;
      while ($done == 0){
        $num++;
        $s = "";
        if ($num<10000000) {$s="0".$s;}
        if ($num<1000000)  {$s="0".$s;}
        if ($num<100000)   {$s="0".$s;}
        if ($num<10000)    {$s="0".$s;}
        if ($num<1000)     {$s="0".$s;}
        if ($num<100)      {$s="0".$s;}
        if ($num<10)       {$s="0".$s;}
    	$done = 1;
    	if (file_exists("news/".$s.$num.".txt")){$done=0;}
      }
      $fh1 =fopen("news/".$s.$num.".txt","w");
      fwrite($fh1, $str1."\r\n");
      fwrite($fh1, $str2."\r\n");
      fwrite($fh1, $str3."\r\n");
      fwrite($fh1, $str4."\r\n");
      fwrite($fh1, $str5);
      fclose($fh1);
    }

    Предложили доработать корпоративную тикет-систему. Движок абсолютно всё хранит в txt-файлах. Да, и пароли пользователей тоже - в открытом виде. БД? Нет, не слышали :(
    Но это еще не так страшно...

    Arris, 26 Марта 2015

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

    +161

    1. 1
    $reload_one_by_one = $folder = $datashow = $tagdelete = $ipdatauser = $design = $open_all = $catshow = $main = $daleeshow = $openshow = $number = $add = $size = $papki_numbers = $zagolovokin = $menu = $noli = $show_title = $random = $showlinks = $open_new_window = $shablon = $show_new_pages = $reload_link_show = $reload_link_time = $reload_link_on_start = $show_pages_from = $calendar_future = $calendar_years = $re_menu_type = $must_have_foto_adres = $papki_in_razdel_show = $papki_in_razdel_punkt = $papki_in_papki_show = $papki_in_papki_punkt = $papki_in_pages_show = $papki_in_pages_punkt = $type_menu_item = $razdel_menu_show = $tag_show = $sort_photo = $archive_type = $archive_sort = $another_css_link = $another_css_options = $another_css_font_1 = $another_css_font_2 = $another_css_color_1 = $another_css_color_2 = $another_css_noimages = $author_show = 0;

    Кажется найден «брат» говнокода http://govnokod.ru/17836

    volter9, 26 Марта 2015

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

    +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
    (
    		new CompleteProfileRequest(
    			new \stdClass,
    			new \Net_URL2(
    				$this->uriBuilder
    					->reset()
    					->setUseCacheHash(FALSE)
    					->setCreateAbsoluteUri(TRUE)
    					->build()
    			),
    			array_key_exists('headlineSelect', $settings)
    				? $settings['headlineSelect']
    				: 'headline:complete_profile'
    		)
    )->create();

    Нельзя просто так взять и наплодить кучу переменных ))

    tarzak, 25 Марта 2015

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

    +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
    20. 20
    21. 21
    22. 22
    public function getProductAttributes($product_id) {
    	$product_attribute_data = array();
    
    	$product_attribute_query = $this->db->query("SELECT attribute_id FROM " . DB_PREFIX . "product_attribute WHERE product_id = '" . (int)$product_id . "' GROUP BY attribute_id");
    
    	foreach ($product_attribute_query->rows as $product_attribute) {
    		$product_attribute_description_data = array();
    
    		$product_attribute_description_query = $this->db->query("SELECT * FROM " . DB_PREFIX . "product_attribute WHERE product_id = '" . (int)$product_id . "' AND attribute_id = '" . (int)$product_attribute['attribute_id'] . "'");
    
    		foreach ($product_attribute_description_query->rows as $product_attribute_description) {
    			$product_attribute_description_data[$product_attribute_description['language_id']] = array('text' => $product_attribute_description['text']);
    		}
    
    		$product_attribute_data[] = array(
    			'attribute_id'                  => $product_attribute['attribute_id'],
    			'product_attribute_description' => $product_attribute_description_data
    		);
    	}
    
    	return $product_attribute_data;
    }

    Opencart -> ModelCatalogProduct -> getProductAttributes
    Первым запросом в БД они берут IDы атрибутов, перебирают их циклом, в котором другим запросом берут всё, в том числе и те же IDы, из той же таблицы и снова перебирают строки циклом.

    technobulka, 25 Марта 2015

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

    +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
    abstract class class_getset {
    	protected $vars;
    	
    	public function get($name = "%all%") {
    		if($name == "%all%") {
    			return $this->vars;
    		}
    		else {
    			return $this->vars[$name];
    		}
    	}
    	
    	/* тут второй метод, угадай его название */
    }

    Старый код из 2012, интересное решение ...

    volter9, 25 Марта 2015

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

    +155

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    /**
     * @param string $singular
     * @param string $context
     */
    function translate($singular, $context=null) {
    	return $singular;
    }

    Любимый вордпресс, wp-includes/pomo/translations.php. Кажется, это такой интерфейс.

    Fike, 24 Марта 2015

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

    +162

    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
    if(isset($_POST['submit']) AND $_POST['submit'] == 'add_program')
          {
             if($this->form_validation->run('add_program') == TRUE)
             {
                // Добавляем программу обучения
                $this->Settings_model->add_program($_POST['title']);
                $id = $this->db->insert_id();
                for ($x = 0; $x < 61; $x++)
                {
                   if ($x <= 12) 
                   {
                      $title = $x;
                      $year = 1;
                   }
                   elseif ($x > 12 AND $x <= 24) 
                   {
                      if($x == 13) {$title = 1;}
                      if($x == 14) {$title = 2;}
                      if($x == 15) {$title = 3;}
                      if($x == 16) {$title = 4;}
                      if($x == 17) {$title = 5;}
                      if($x == 18) {$title = 6;}
                      if($x == 19) {$title = 7;}
                      if($x == 20) {$title = 8;}
                      if($x == 21) {$title = 9;}
                      if($x == 22) {$title = 10;}
                      if($x == 23) {$title = 11;}
                      if($x == 24) {$title = 12;}
                      $year = 2;
                   }
                   elseif ($x > 24 AND $x <= 36) 
                   {
                      if($x == 25) {$title = 1;}
                      if($x == 26) {$title = 2;}
                      if($x == 27) {$title = 3;}
                      if($x == 28) {$title = 4;}
                      if($x == 29) {$title = 5;}
                      if($x == 30) {$title = 6;}
                      if($x == 31) {$title = 7;}
                      if($x == 32) {$title = 8;}
                      if($x == 33) {$title = 9;}
                      if($x == 34) {$title = 10;}
                      if($x == 35) {$title = 11;}
                      if($x == 36) {$title = 12;}
                      $year = 3;
                   }
                   elseif ($x > 36 AND $x <= 48) 
                   {
                      if($x == 37) {$title = 1;}
                      if($x == 38) {$title = 2;}
                      if($x == 39) {$title = 3;}
                      if($x == 40) {$title = 4;}
                      if($x == 41) {$title = 5;}
                      if($x == 42) {$title = 6;}
                      if($x == 43) {$title = 7;}
                      if($x == 44) {$title = 8;}
                      if($x == 45) {$title = 9;}
                      if($x == 46) {$title = 10;}
                      if($x == 47) {$title = 11;}
                      if($x == 48) {$title = 12;}
                      $year = 4;
                   }
                   else
                   {
                      if($x == 49) {$title = 1;}
                      if($x == 50) {$title = 2;}
                      if($x == 51) {$title = 3;}
                      if($x == 52) {$title = 4;}
                      if($x == 53) {$title = 5;}
                      if($x == 54) {$title = 6;}
                      if($x == 55) {$title = 7;}
                      if($x == 56) {$title = 8;}
                      if($x == 57) {$title = 9;}
                      if($x == 58) {$title = 10;}
                      if($x == 59) {$title = 11;}
                      if($x == 60) {$title = 12;}
                      $year = 5;
                   }
                   
                   if($x != 0)
                   {
                      // Добавляем месяцы обучения
                      $this->Settings_model->add_tutorial_months($id,$year,$title);
                   }
                }

    Тяжело супортить чейто проект

    Zilot, 23 Марта 2015

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

    +168

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    9. 9
    $salt = 'fghjghjfhjfjhnbvmnbmvhjgfgjh785678tyutyu76678xcvbxcvb67hdfghdfgh67e657ytryerty5674567ryerty6574567tryertye75467657trhgfbvnhmhkijiluiotyiueuwyertsdrgfhndhgjdtyuerghddjghjhgjfktryudghgfhrthrtdhgfhdtyerghfghrtyer74576ytreuyytu6756yertytryet756745yhhgfnmdfgsreyyrteu676584678677795785687ytujhgfnvgsgomsjgsfguhjhgsdfujsdfgpousgjpsihsgubsfug89e6w5hisfdgbsidfgh5467woaiybvsdfghewtuhrty90w465uiregthshuaert90wuitre97gfuhfsujghhntigfjhtkh90eruheiuhfdiuhtruhghrthr9ugfgijdfngifdgijfgnsdfghwe9065hutriosgdfojdfigodfhgeiurtwhe9057yer9tud9fsoiudfshgert9y435trhgfdiuhgsdiufghidfghfffff';
    $hash = md5(sha1(md5(md5($salt . $oplata . $rnd . $summ . $time . $id . $kl . $magas . $xxtea . $salt) . $salt . $time . $id . $magas . $rnd) . $salt . $time . $id . $magas . $rnd) . $salt . $kl . $kl);
    $hash = hash('sha512', $hash);
    $hash = hash('whirlpool', $hash);
    $hash = hash('ripemd320', $hash);
    $hash = hash('haval256,5', $hash);
    $hash = hash('ripemd320', $hash);
    $hash = hash('snefru', $hash);
    $hash = hash('crc32', $hash);

    Безопаснейший и неподбираемейший хэш =)
    Оригинал тут: https://toster.ru/q/204698

    SagePtr, 23 Марта 2015

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

    +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
    24. 24
    25. 25
    26. 26
    27. 27
    $Result = MySQL_Query("SELECT name FROM users WHERE name='$Login'") or ("Can't execute query.");
                    
    if (MySQL_Num_Rows($Result))
    {
              echo "Account <b>".$Login."</b> is exists";
    }
    ...
    elseif ((StrLen($Pass) < 4) or (StrLen($Pass) > 10)) 
    
    {
    echo "Password must have more 4 and not more 10 symbols.";
    }
    
    elseif ((StrLen($Repass) < 4) or (StrLen($Repass) > 10)) 
    {
    echo "Repeat password must have more 4 and not more 10 symbols.";
    }
    
    elseif ((StrLen($Email) < 4) or (StrLen($Email) > 25)) 
    {
    echo "Email must have more 4 and not more 25 symbols.";
    }
    
    elseif ($Pass != $Repass)
    {
    echo "Password mismatch.";
    }

    Фрагмент регистрации из кода сайта MMO игры. Видимо die забыли и в итоге вся проверка фтопку. Так же там педантично кроме проверки несовпадения введенных паролей оба проверяют на длину и содержание символов (это еще можно описать заботой о юзвере).

    Мартин, 22 Марта 2015

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

    +159

    1. 1
    $home = $jsClass = $benchmark = $showAtom = $mainJS = $author = $update = $nameError = $mailError = $msgError = $slugError = $spamError = $codeError = $codeTitleError = $titleError = $error = $author = $authorEmail = $authorURL = $ga = $embed = $noIndex = false;

    Зачем?

    Отсюда:
    https://github.com/mathiasbynens/jsperf.com/blob/master/index.php#L25

    volter9, 21 Марта 2015

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