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

    +145

    1. 1
    Привет, я вот сайт пишу, каталог, на заказ, ну короче, считаю себя говнокодером. Хочу попросить более опытных что ль, оценить. Сказать так это или нет. Ссылочку на гитхаб чуть позже присобачу.

    proweber1, 27 Марта 2015

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

    +158

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    <?
      include 'const.php';
      PrintUP("404");
      Echo "<img src='https://lh4.googleusercontent.com/-WnF8tpKQA20/AAAAAAAAAAI/AAAAAAAAEEE/IDe9WUshb8c/s120-c/photo.jpg'>Страница не найдена. =(";
      PrintDOWN();
    ?>

    Не спрашивайте, что делают функции PrintUP() и PrintDOWN(). Первая - 600 строк пхп кода со вставками вида echo ' function() { js-код } ' ; , вторая - 140 строк с очень странными манипуляциями с файлами "базы данных".

    Arris, 26 Марта 2015

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

    +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
    function CommentTask($replic, $depuser){
    				
              	  $fh1 = fopen('tasks/'.$replic['page'], "r");
    				  $str = fgets($fh1, 4096);
    				  $mass = explode("~", $str);	  
    				  $projectpage = $mass[5].".txt";
    				  $deppage = $mass[6];
    				  fclose($fh1);
                 $olddate = "";	  
    	         If (rtrim($replic['date'])<>""){
    			      $fh1 = fopen('tasks/'.$replic['page'], "r");
    				  $str = fgets($fh1, 4096);
    				  $mass = explode("~", $str);
    				  $olddate = " (Изменение даты с ".dt($mass[3])." на ".dt($replic['date']).")";
    			      $data= $mass[0]."~".$mass[1]."~".$mass[2]."~".$replic['date']."~".$mass[4]."~".$mass[5]."~".$mass[6];//В виндовс не \n, а \r\n
                      $file = 'tasks/'.$replic['page'];
    			      $array=file( $file );
    			      $array[0]=$data; 
    			      file_put_contents($file, $array); 
    			 }
    	          $fh =fopen('tasks/'.$replic['page'],"a");
    	          fwrite ($fh, "\r\n".date('d.m.Y G:i'). " : ".$replic['addon'].$olddate." (".$_COOKIE[user].")");
      			  addrecord(date('d.m.Y G:i').": "." Добавлено примечание : ".$replic['addon'], " Задание: №".str_replace(".txt", "", $replic['page'])." <a href='tasks.php?page=".$replic['page']."'><i>".$mass[1]."</i>.</a> Автор: ".$_COOKIE[user]."<i> Задача от пользователя <b>".rtrim($mass[2])."</b></i>", rtrim($deppage), "notes");
    	          sendmanagement(namedep(rtrim($mass[6])), date('d.m.Y G:i')."Задание: №".str_replace(".txt", "", $replic['page'])." ".$mass[1].".: "." Добавлено примечание : ".$replic['addon']."<br> Автор: ".$_COOKIE[user]."<i> Задача от пользователя <b>".rtrim($mass[2])."</b></i>", 1, 0);
                   if (isfl(rtrim($mass[2]))==1){
    				  sendmanagementfl(namedep(rtrim($mass[6])), date('d.m.Y G:i')."Задание: ".$mass[1].".: "." Добавлено примечание : ".$replic['addon']."<br> Автор: ".$_COOKIE[user]."<i> Задача от пользователя <b>".rtrim($mass[2])."</b></i>", 1, 0);
    			   }
    			   if (rtrim($mass[2]) <> rtrim($_COOKIE[user])){
    			      senduser2("Оповещение ", "Задание: №".str_replace(".txt", "", $replic['page'])." ".$mass[1].".: "." Добавлено примечание : ".$replic['addon'],  rtrim($mass[2]));
    			  }
    			 sendfollowers($replic['page'], "Задание: №".str_replace(".txt", "", $replic['page'])." ".$mass[1].".: "." Добавлено примечание : ".$replic['addon']);
    			 fclose($fh);
    }

    БД? Нет, не слышали!

    Arris, 26 Марта 2015

    Комментарии (1)
  4. 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)
  5. 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)
  6. 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)
  7. 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)
  8. 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)
  9. 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)
  10. 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)