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

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

    +50

    1. 1
    if(!empty($filter['features']) && !empty($filter['features'])) ...

    Simpla CMS /api/Products.php

    Andretti, 21 Января 2013

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

    +50

    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
    <?php
    session_start();
    if(empty($_SESSION['UserLogin']) or empty($_SESSION['UserId']))
    {
      header('Location: /');
    }
    else
    {
      include("application/db.config.php");
      $GetterUser = $_POST['ForUser'];
      $SenderUser = $_SESSION['UserId'];
      $Rem = strip_tags($_POST['Rem']);
      $Text = strip_tags($_POST['Text']);
    
      if($Rem == "" or $Text == "")
      {
        header("Location: sent_mess?to=$GetterUser&status=bad");
      }
      else
      {
        $SendingMessQuery = mysql_query("INSERT INTO Dialogs(From, To, Rem, Text) VALUES($SenderUser, $GetterUser, '$Rem', '$Text')", $db) or die(mysql_error());
        mysql_close($db);
        header("Location: sent_mess?to=$GetterUser&status=good");
      }
    }
    ...

    Govnisti_Diavol, 11 Декабря 2012

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

    +50

    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
    $sw = false;
    if($valid_from && $valid_to)
    	if( ($valid_from<=date('U')) && ($valid_to>=mktime(0,0,0,date('m'),date('d'),date('Y'))) )
    		$sw = true;
    	else
    		{
    			//Nimic
    		}
    elseif($valid_form)
    	if($valid_form<=date('U'))
    		$sw = true;
    	else
    		{
    			//Nimic
    		}
    elseif($valid_to)
    	if($valid_to>=mktime(0,0,0,date('m'),date('d'),date('Y')))
    		$sw = true;
    	else
    		{
    			//Nimic
    		}
    else
    	$sw = true;

    Edd, 04 Декабря 2012

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

    +50

    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
    function StringForCountryInt($countryInt)
    	{
    		switch ($countryInt)
    		{
    			case "1" : return 'Afghanistan'; break;
                case "2" : return 'Albania'; break;
                case "3" : return 'Algeria'; break;
                case "4" : return 'American Samoa'; break;
                case "5" : return 'Andorra'; break;
                case "6" : return 'Angola'; break;
                case "7" : return 'Anguilla'; break;
                case "8" : return 'Antarctica'; break;
    //          ....
    //          ....
    //          ....
                 case "239" : return 'Zimbabwe'; break;
    		}
    	}

    MODx, evolution. Сниппет WebLoginPE.
    В базе сохраняет ID страну, в классе вот такой метод для обратного преобразования :)

    MaXL, 04 Декабря 2012

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

    +50

    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
    public function getFilename($filename) {
            $string = ereg_replace("ж", "zh", $filename);
            $string = ereg_replace("ё","yo",$string);
            $string = ereg_replace("и", "i",$string);
            ......
    
            $string = ereg_replace("Т","T",$string);
            $string = ereg_replace("Б","B",$string);
            
            $string = ereg_replace(" ","_",$string);
            $filename = preg_replace("/[^\w\.\-_]/","",$string);
            
            return strtolower($filename);
        }

    UnnamedUser, 01 Декабря 2012

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

    +50

    1. 1
    2. 2
    $result = ( !empty($this->skins[$skin]['gplum']) ) ? TRUE : FALSE;
    return $result;

    Наверное, это уже баян.

    nbspjr, 21 Ноября 2012

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

    +50

    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
    if(!$category = $this->EE->product_model->get_category_by_key($key)){
        $this->EE->functions->redirect($this->EE->functions->create_url($this->EE->config->item('site_404')));
        exit();
    }
    // Эти 4 строчки достают все продукт которые относятся к выбранной категории. Дальше веселее .. 
    
    // Build our variable data
    				$vars[0] = array(
    									'site_id' =>  $category[0]['site_id'],
    									'category_id' => $category[0]['category_id'],
    									'category_image' => $img,
    									'category_detail' => $category[0]['detail'],
    									'parent_id' =>  $category[0]['parent_id'],
    									'category_title' =>  $category[0]['title'],
    									'url_title' =>  $category[0]['url_title'],
    									'meta_title' =>  $category[0]['meta_title'],
    									'meta_keyword' =>  $category[0]['meta_keyword'],
    									'meta_descr' =>  $category[0]['meta_descr'],
    									'total_results' => count($category[0]["products"]),
    									'results' => $category[0]["products"],
    									'no_results' => array(),
    									'result_filter_set' => '', 
                                                                            'breadcrumb_parent_categories' => $breadcrumb_parent_categories,
                                                                            'catalog_guest_flag' => $flag_catalog,
                                                                            'catalog_price_visible' => $catalog_visible
    								);
    
    // Filter the results
    if(count($category[0]["products"]) != 0)
         $vars = $this->_filter_results($vars,$key,true);
    
    // А теперь count($vars['results']) == $this->EE->config->products_per_page;
    // И самое веселое - 
    
    foreach($vars[0]['results'] as $rst){
    				$tmp = $this->_get_product($rst["product_id"]);
    				$results[] = $tmp[0];
    			}
    			$vars[0]['results'] = $results;
    
    // Функция _get_product() получает все данные о продукте: отзывы, описание, цена, куча опций. Пара строчек оттуда:
    
                         if($product_id == ''){
    				// Get product by param or dynamically
    				$product_id = $this->EE->TMPL->fetch_param('product_id');
    				$url_title = $this->EE->TMPL->fetch_param('url_title');
    				if($product_id != ''){
    					$products = $this->EE->product_model->get_products($product_id);
    				}else{
    					// get by url key
    					$key = ($url_title == '') ? $this->EE->uri->segment(2) : $url_title;
    					if(!$products = $this->EE->product_model->get_product_by_key($key)){
    						 // Not a product page
    						 return false;
    					}
    				}
    			}else{
    				if(!$products = $this->EE->product_model->get_products($product_id)){
    					return false;
    				}
    			}
    
    // Очень интересен вызов функции get_products(), эта ф-ция вызывается и для продуктов в каталоге и на странице продукта.
    // Каждый вызов тянет за собой 25 запросов в базу, если на странице 40 продуктов * 25 = 1000 запросов = ~ 20 секунд на загрузку страницы

    кусочек кода который выводит продукты в каталог, взят из eCommerce плагина BrilliantRetail для ExpressionEngine. Плагин кстати говоря стоит 150 баксов, мда )

    Archont12, 27 Октября 2012

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

    +50

    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
    $submit = $_REQUEST['submit'];
    if(isset($submit))
    {
    
    	$first_name = $_REQUEST['first_name'];
    	$last_name = $_REQUEST['last_name'];	
    	$address = $_REQUEST['address'];
    	$city = $_REQUEST['city'];
    	$country = $_REQUEST['country'];
    	$state = $_REQUEST['state'];
    	$zipcode = $_REQUEST['zipcode'];
    	$phone = $_REQUEST['phone'];
    	$email = $_REQUEST['email'];
    		
    	$_SESSION['first_name'] = $first_name;
    	$_SESSION['last_name'] = $last_name;
    	$_SESSION['address'] = $address;
    	$_SESSION['city'] = $city;
    	$_SESSION['country'] = $country;
    	$_SESSION['state'] = $state;
    	$_SESSION['zipcode'] = $zipcode;
    	$_SESSION['phone'] = $phone;
    	$_SESSION['email'] = $email;
    	
    	
    	?>
    	  <meta http-equiv="refresh" content="0;url=https://www.site.com/development1/billing_info.php"/>
    	<?
    	  exit();

    оригинальная обработка сабмита формы и редиректа

    bytes, 16 Октября 2012

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

    +50

    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
    //Зарплата с пересчетом в уях
    $salary = NULL;
    $parse_array[2] = str_replace('от','',$parse_array[2]); //Выпиливаем слово "от", на нем спотыкается прегматч и дергалка ЗП
    $parse_array[2] = str_replace('От','',$parse_array[2]);
    $parse_array[2] = trim($parse_array[2]);
    if (strpos($parse_array[2],"у.е."))
                	{
                    	$salary_currency = "у.е.";
                    } else
                    {
                    $salary_currency = "руб.";
                    }
    $salary = substr($parse_array[2], 0 , strpos($parse_array[2]," "));
    if ($salary_currency!="руб.") {$salary = $salary*$options["ue_value"];}
    //конец выдергивания зарплаты

    Внимание! Все комментарии в коде - реальны...

    SnaIK, 09 Октября 2012

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

    +50

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    /**
         * Что я курил, когда это писал? Почему нельзя было date('H:i:s', $time) ??? +___=
         * @param $seconds
         * @return string
         */
        private static function prettySecondsPrint($seconds){
            return str_pad((int)($seconds / 3600), 2, '0', STR_PAD_LEFT)
                .':'.str_pad((int)(($seconds % 3600) / 60), 2, '0', STR_PAD_LEFT)
                .':'.str_pad($seconds % 60, 2, '0', STR_PAD_LEFT);
        }

    А это, к сожалению, мое творение) Комменарий приписал когда позже просматривал код и обнаружил это)

    et, 28 Сентября 2012

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