1. Список говнокодов пользователя oooZinka

    Всего: 9

  2. PHP / Говнокод #14350

    +161

    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
    static function anyToTimestamp($date) {
    		// 2009-09-03 12:10:55
    		if (preg_match('/^([0-9]{4})\-([0-9]{2})\-([0-9]{2})(?: ([0-9]{2})\:([0-9]{2})\:([0-9]{2}))?$/', $date, $arr)) {
    			$ts = mktime($arr[4], $arr[5], $arr[6], $arr[2], $arr[3], $arr[1]);
    		// 03.04.2008 10:12:11
    		} elseif (preg_match('/^([0-9]{1,2})\.([0-9]{1,2})\.([0-9]{4})(?: ([0-9]{1,2})\:([0-9]{1,2})(?:\:([0-9]{2}))?)?$/', $date, $arr)) {
    			$ts = mktime($arr[4], $arr[5], $arr[6], $arr[2], $arr[1], $arr[3]);
    			// MySQL timestamp YYYYMMDDHHMISS
    		} elseif (preg_match('/^\d{14}$/', $date)) {
    			$ts = mktime(substr($string, 8, 2), substr($string, 10, 2), substr($string, 12, 2), substr($string, 4, 2), substr($string, 6, 2),
    				substr($string, 0, 4));
    			// PHP timestamp
    		} elseif (is_int($date)) {
    			$ts = $date;
    			// давно заметил, что предыдущее условие не всегда срабатывает. добавил условие ниже. если передается timestamp 100% сработает
    		}elseif(strlen((int)$date)>=10 && is_int((int)$date)) {
    			$ts = $date;
    		}
    
    		return ($ts && $ts!=-1)?$ts:null;
    	}

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

    Однако весь смысл не в этом как вы уже поняли.

    oooZinka, 14 Января 2014

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

    +161

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    //надо показать элемент каталога во всей красе
    $_CENTER="show_category_item(".$newParts[0].");";
    eval($_CENTER);
    
    // ...
    $_LEFT='get_main_category($cat_id, $new_path);';
    $_CENTER="show_category_item_list($".'newParts'.");";

    Вот с таким адом мне приходится работать.

    oooZinka, 16 Декабря 2013

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

    +153

    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
    //поменяет src картинки на cid и вернет массив с дополнительными секциями тела письма
    function convert_image_src($text, &$new_section_arr){
    	global $_SERVER;
    	
    	//расчленяем текст на куски по img
    	$new_src_arr=array();//массив путей к картинкам
    	$arrTmp=explode("<img", $text);
    	$explode_str=array("\\\"", "\"", "'");
    	
    	for($i=1; $i<sizeof($arrTmp); $i++){
    		$arrTmp2=explode("src=", $arrTmp[$i]);
    		
    		for($j=1; $j<sizeof($arrTmp2); $j++){
    			for($k=0; $k<sizeof($explode_str); $k++){
    				if(substr($arrTmp2[$j], 0, strlen($explode_str[$k]))==$explode_str[$k]){
    					$arrTmp3=explode($explode_str[$k], $arrTmp2[$j]);
    					
    					//считать можем только картинки с того же сервера  - остальные побоку
    					if(ref_is_server($arrTmp3[1])){
    						$old_src_arr[]=$arrTmp3[1];
    						$new_src_arr[]=convert_url_2_full_server($arrTmp3[1]);
    					}
    				}
    			}
    		}
    	}
    	
    	//теперь формируем новые секции
    	for($i=0; $i<sizeof($new_src_arr); $i++){
    		$file_arr=get_file_content($new_src_arr[$i], true);
    		if(strlen($file_arr[0])>0){
    			//запоминаем секцию
    			$new_section_arr[]=$file_arr[0];
    			//заменяем ссылку на cid
    			$text=str_replace($old_src_arr[$i], "cid:".$file_arr[1], $text);
    		}
    	}
    	
    	return $text;
    }

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

    oooZinka, 20 Ноября 2013

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

    +154

    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
    class Icon extends IconBuilder
    {
    	public static function create($type, $white = false)
    	{
    		$class = __CLASS__;
    		return new $class($type, $white);
    	}
    
    	public function getType()
    	{
    		return $this->_type;
    	}
    
    	public function getWhite()
    	{
    		return $this->_white;
    	}
    }

    Код выдернут из Bootstrap.PHP http://allking.ru/bootstrap.php/
    Особое внимание уделить функции create и константе __CLASS__
    Вопрос: почему не обойтись просто self? В чем магия?

    З.Ы.: Пока писал, нашел в доках, что "волшебная" константа содержит так же пространство имен.
    Извиняюсь, что не узнал об этом раньше.
    Но я все же наложу сюда, с вопросом, даже учитывая всю эту информацию, почему мы не можем обойтись способами, исключающими использование константы?
    (все равно получается говнокод, хоть и работающий)

    oooZinka, 18 Ноября 2013

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

    +51

    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
    <? 
    return true;
    				@ $db=mysql_connect('akapyan.localhost','akapyan','akapyan123');
    				if ( !$db)
    				 {
    echo "<h2 align=center>Приносим извенения !<br>Произошел сбой соединения,попробуйте зайти на сайт позднее...</h2>
    ";
    exit;
    				}
    				
    	$quer1="select * from obekt  ORDER BY `mm` DESC LIMIT 20  ";   
    												
    												mysql_select_db("db_akapyan");

    Весь код смысла нет приводить, там вообще ад не для слабонервных.
    Хочу уточнить файл инклудится не в функцию.
    Кроме того автор создает константы для того чтобы проверить загружался файл ранее или нет. Он просто не знал, что есть include_once.

    oooZinka, 29 Августа 2012

    Комментарии (15)
  7. Куча / Говнокод #10862

    +140

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    Классификация говнокода:
    1. Легкий говнокод
    2. Кучка говнокода
    3. Автор думал, что самый умный
    4. Жесткое порно в коде
    5. Муть полнейшая, автор на следующий день не смог разобраться сам
    6. После прочтения единственный путь нормально поспать - сделать лоботомию.

    Сидел я и разбирал чей-то говнокод.
    Чтобы расслабить нервы, которые уже на пределе, решил написать классификацию говнокода.
    Предлагайте свои варианты.

    oooZinka, 09 Июня 2012

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

    +75

    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
    if (ereg("^/products/([0-9]+)/$",$dn,$m)){
        $block_id = $m[1];
        $dn_page = "/products/";
    }
    
    if (ereg("^/products/([-a-z0-9_\.]+)/$",$dn,$m)){
        $block_alias = $m[1];
        $dn_page = "/products/";
    }
    
    if (ereg("^/articles/([0-9]+)/$",$dn,$m)){
        $block_id = $m[1];
        $dn_page = "/articles/";
    }
    
    if (ereg("^/news/([0-9]+)/$",$dn,$m)){
        $block_id = $m[1];
        $dn_page = "/news/";
    }
    
    if (ereg("^/products/([0-9]+)/([0-9]+)/$",$dn,$m)){
        $block_id = $m[1];
        $product_id = $m[2];
        $dn_page = "/products_detail/";
    }
    
    if (ereg("^/products/([-a-z0-9_\.]+)/([-a-z0-9_\.]+)/$",$dn,$m)){
        $block_alias = $m[1];
        $product_alias = $m[2];
        $dn_page = "/products_detail/";
    }
    // дальше начинается ад, не для слабонервных

    Я не буду показывать остальной код и рассказывать, что html в php пихать не красиво, ведь все мы индивидуальны и пишем как хотим. =)
    Кроме всего прочего, человек видимо очень стар и использует давно устаревшую функцию ereg, которая в версии 5.3.0 не имеет силы.
    На эту тему можно пофилософствовать и развести холивар, но мы же разумные люди и те кто пишет комментарии высшие программисты,
    ибо их слово это закон. По крайней мере вы так думаете)

    oooZinka, 29 Мая 2012

    Комментарии (1)
  9. Куча / Говнокод #10262

    +131

    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
    #------------обрабатываем окончания html-------------
    RewriteEngine on
    Options +FollowSymlinks
    RewriteBase /
    RewriteRule ^([A-Za-z0-9-]+)/(.*).html?$ /$1/$2 [NC,L]
    RewriteRule ^(.*).html?$ /$1 [NC,L]
    
    <IfModule mod_charset.c>
    CharsetRecodeMultipartForms off
    </IfModule>
    #------------разбор URL для админки------------------
    RewriteEngine on
    RewriteRule ^([a-zA-Z0-9_-]+).html$ ([a-zA-Z0-9_-]+) [L]
    RewriteRule ^([a-zA-Z0-9_-]+)/*([a-zA-Z0-9_-]*)/*([a-zA-Z0-9_-]*)/*([a-zA-Z0-9_-]*)/*([a-zA-Z0-9_-]*)/*([a-zA-Z0-9_-]*)/*([a-zA-Z0-9_-]*)/*([a-zA-Z0-9_-]*)/*([a-zA-Z0-9_-]*)$ /index.php?%{QUERY_STRING}&param[0]=$1&param[1]=$2&param[2]=$3&param[3]=$4&param[4]=$5&param[5]=$6&param[6]=$7&param[7]=$8&param[8]=$9

    Apache .htaccess
    Смотрите сами :D

    oooZinka, 14 Мая 2012

    Комментарии (4)
  10. Perl / Говнокод #10240

    −176

    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
    <html>
    <head>
    <script type="text/javascript">
    	var url = location.href;
    	var key = '<meta name="keywords" content="" />';
    	var dsc = '<meta name="description" content="Радиозавод – одно из ведущих предприятий, выпускающее hd ресиверы – цифровые, спутниковые, кабельные, приставки dvb с, а также инфракрасные сушки для овощей и фруктов, зерновые сеялки и светодиодные светильники для жкх. Кроме того мы предлагаем вниманию наших клиентов мобильную медицинскую технику: передвижной пункт забора крови, стоматологический кабинет и т.д." />';
    	url = url.replace('http://','');
    	url = url.replace('www.','')
    
    	if(url == "domen.ru") {
    	    dsc = '<meta name="description" content=""Радиозавод" осуществляет производство светодиодных светильников. Инфракрасная сушка одно из приоритетных направлений деятельности. Производители светодиодных светильников это группа компаний "Радиозавод"." />';
    	    key = '<meta name="keywords" content="производство светодиодных светильников, производители светодиодных светильников, инфракрасная сушка" />';
    	}
    	if(url == "domen.ru/catpv.5.htm") {
    	    dsc = '<meta name="description" content="передвижной стоматологический кабинет" />';
    	    key = '<meta name="keywords" content="Передвижной стоматологический кабинет от компании "Радиозавод" это универсальное решение для любых условий эксплуатации." />';
    	}
    	if(url == "domen.ru/catp.19.htm") {
    	    dsc = '<meta name="description" content=""Радиозавод" предлагает сеялку зерновую точного высева. Купить сеялку можно уже сейчас, доставляем в регионы." />';
    	    key = '<meta name="keywords" content="купить сеялку, сеялка зерновая, сеялка точного высева" />';
    	}
    	if(url == "domen.ru/catpv.103.htm") {
    	    dsc = '<meta name="description" content="Сеялка пневматическая универсальное решение для сельхозработ от компании "Радиозавод"" />';
    	    key = '<meta name="keywords" content="сеялка пневматическая" />';
    	}
    	
    	if(url == "domen.ru/catpv.104.htm") {
    	    dsc = '<meta name="description" content="Сеялка овощная как наверное оборудовение подойдет для  любых тракторов. Всегда в наличие овощная сеялка точного высева." />';
    	    key = '<meta name="keywords" content="овощная сеялка точного высева, сеялка овощная" />';
    	}
    	
    	if(url == "domen.ru/catpv.108.htm") {
    	    dsc = '<meta name="description" content=""Радиозавод" реализует светильники для теплиц в любом количестве. Светильник тепличный соответствует всем современным стандартам." />';
    	    key = '<meta name="keywords" content="светильники для теплиц, светильник тепличный" />';
    	}
    
    	/* ... тут еще куча такого же высера ... */
    
    	document.writeln(key);
    	document.writeln(dsc);
    </script>
    
    <title><TMPL_IF "header2"><TMPL_VAR "header2"><TMPL_ELSE><TMPL_VAR "start_header"><TMPL_IF "header"> - </TMPL_IF><TMPL_VAR "header"></TMPL_IF></title>

    Я даже вначале не знал в какую категорию это отнести.
    Сайт написан на Perl. Так как я не мастер в нем не буду выкладывать из него говнокод, вдруг он окажется мастер классом :)
    + Весело наблюдать закрытие тега meta в HTML.

    oooZinka, 10 Мая 2012

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