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

    +150

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    $Not = array('\\',",","/","¬","#",";",":","~","[","]","{","}",")","(","*","^","%","$","<",">","?","!",'"',"'","|");
    ...
    
    function check($string){
    $string = preg_replace("/[^a-zA-Z a-яА-яёЁ]/i", "",$string);
    $string = str_replace($Not,'',$string);
    $string = htmlspecialchars($string);
    
    return $string;
    }

    Нашёл у себя убойный фильтр. Работает как зверь :-)

    straga_coda, 10 Апреля 2013

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

    +147

    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
    <?/**
        * Возвращаем все товары по фильтру
        * @author Алексей Чигинцев
        * Доработал и убрал участки еблизма: Арбора Сергей
    	* Почувствовал, что могу все улучшить, но все разъебал еще хуже чем было изначально: Влад Черноскутов
        * Ниче не знаю техничкой роблю: Алексей MOSkvin
        * имхо: Вадим стиль руки хуй
        * @param array $options - список используемых параметров
        * @return array|false - массив товаров либо false
        */
        function getGoodsFilter($options = array(),$_FILTER) {
          	$price_expr = '`price`';$_sub = $_out = array();$sql = $_sub_child = '';
            $cat = new Catalog(self::$db);
            $cat->load();
            $filter_query = self::parseFilterQuery($_FILTER);
            if ($options['SS'] && (!$options['first'] && !$options['second'] && !$options['last']))
            {//получаем всех детей
                $_sub_child = $cat->get_child(41);        
                if($options['id_man'][0]!=''){$whereand1 = $filter_query;}else{$whereand1 ="";}
                if($options['sort_type']){$order1 = ' ORDER BY `'.$options['sort_field'].'` '.$options['sort_type'];
                } else {$order1 =""; }
                if (!empty($_sub_child)){$i=0;
                	foreach ($_sub_child as $v){
    	                if($i<count($_sub_child)-1){$_sub_chil .= $v.','; $i++; }else{$_sub_chil .= $v; }}
    	                if($whereand1!=""){$_sub[] = self::$db->resultAsArray('SELECT * FROM `'.self::$table.'` WHERE `is_dollar`= "0" `cid` IN('.$_sub_chil .') '.$whereand1.$order1);
                    }else{$_sub[] = self::$db->resultAsArray('SELECT * FROM `'.self::$table.'` WHERE `is_dollar`= "0" cid` IN('.$_sub_chil .') AND name` LIKE "%'.mysql_real_escape_string($options['SS']).'%" '.$order1
                    	);}}
                if ($_sub){ foreach($_sub as $v){if (!empty($v)){ 
                    		foreach ($v as $v_child){ 
                                $_out[$v_child['id']] = $v_child; 
                    }}}}
                if (!empty($_out)) return $_out;
                    else return false;
            }elseif ($options['SS'] && ($options['first'] || $options['second'] || $options['last']))    
                { 	$whereand1 = "";
                    if($options['id_man'][0]){$whereand1 = $filter_query;}
                    if($options['sort_type']){
                    $order1 = ' ORDER BY `'.$options['sort_field'].'` '.$options['sort_type'];}else{$order1 ="";}    
                    $_where_price = false;
                    if ($options['last']){switch ($options['last']){
                        case 1: $_where_price .= ' '.$whereand1.'AND ((`is_dollar`=0 AND (`price` > 0 AND `price` <= 25000)) OR (`is_dollar`=1 AND (`price` > 0 AND `price` <= '.__dollar(25000).'))) '.$order1; break;
                        case 2: $_where_price .= ' '.$whereand1.'AND ((`is_dollar`=0 AND (`price` > 25000 AND `price` <= 50000)) OR (`is_dollar`=1 AND (`price` > '.__dollar(25000).' AND `price` <= '.__dollar(50000).'))) '.$order1; break;
                        case 3: $_where_price .= ' '.$whereand1.'AND ((`is_dollar`=0 AND `price` > 50000) OR (`is_dollar`=1 AND (`price` > '.__dollar(50000).')))'.$order1; break;
                        default: $where_price = false; break;
                    }}$_sub_child = $cat->get_child($options['first']);
                        if (!$_sub_child){$_out = self::$db->resultAsArray('SELECT * FROM `'.self::$table.'` WHERE 
    	                                    `name` LIKE "%'.mysql_real_escape_string($options['SS']).'%" 
    	                                    AND `is_dollar`= "0" AND  `cid`='.intval($options['first']).' 
    	                                ' . ($options['second'] ? ' AND `id_man`='.intval($options['second']).' ' : '') . '
    	                                ' . ($_where_price ? $_where_price : '') . ''.$whereand1.$order1);
                            if (!empty($_out)) return $_out;else return false;
                        }else{foreach ($_sub_child as $v){
                                    $_sub[] = self::$db->resultAsArray('SELECT * FROM `'.self::$table.'` WHERE 
                                        `name` LIKE "%'.mysql_real_escape_string($options['SS']).'%" 
                                        AND `is_dollar`= "0"  AND  `cid`='.intval($v).' 
                                    ' . ($options['second'] ? ' AND `id_man`='.intval($options['second']).' ' : '') . '
                                    ' . ($_where_price ? $_where_price : '') . '');
                                }if ($_sub){foreach ($_sub as $v){if (!empty($v)){
                                            foreach ($v as $v_child){   
                                            	$_out[$v_child['id']] = $v_child; 
                                        	}}}}
                                if (!empty($_out)) return $_out;else return false;
                    }}elseif (!$options['SS'] && ($options['first'] || $options['second'] || $options['last'])){
                            $_where_price = false;$whereand1 = "";
                            if($options['id_man'][0]){$whereand1 = $filter_query;}
                            if($options['sort_type']){$order1 = ' ORDER BY CAST(`' .$options['sort_field'].'` AS SIGNED) '.$options['sort_type'];}else{$order1 ="";}        
    						if ($options['last']){switch ($options['last']){
                                    case 1: $_where_price .= ' '.$whereand1.'AND (`is_dollar`=1 AND (`price` > 0 AND `price` <= '.__dollar(25000).')) '; break;
    								case 2: $_where_price .= ' '.$whereand1.'AND (`is_dollar`=1 AND (`price` > '.__dollar(25000).' AND `price` <= '.__dollar(50000).')) '; break;
    								case 3: $_where_price .= ' '.$whereand1.'AND (`is_dollar`=1 AND (`price` > '.__dollar(50000).'))'; break;
                                    default: $where_price = false; break;
                            }}
                            //получаем детей для $options['first'] - если дети есть ищем по их массиву
                            $_sub_child = $cat->get_child($options['first']);
                        }else return false;}

    Работаю в веб-студии, расклад такой:
    1) Чувак-извращенец как-то поднял сайт с фильтром по каталогу, уволился.
    2) Пришел второй чувак, ему поручили фикс этого творения - сломал все что работало.
    3) Пришел я, починил все необычными костылями, вроде как работало
    4) Пришел еще один чувак, доработал до мульти выбора в фильтре)) - все слетело, поставил мега крутые костыли, они и представлены
    5) Пришел очередной чувак и порешал все, терь работает, но все костыли живут и будут жить))))))

    arbora, 10 Апреля 2013

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

    +150

    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
    function news222($record)
      {
    
      $rrr = "answers.com";
      
      global $aaa;
    $keyword = $q;
    $q = $q;
    $qnew = ucwords($q);
    global $q;
    
    $lw = array();
    $qw = array();
    $aw = array();
    $sw = array();
    
    
    
    
    
    $con = mysql_connect("10.38.16.4","xxxx","xxxxx");
    
    if($con)
    {
    
    mysql_select_db("sql_stats");
    $c = mysql_fetch_array(mysql_query("select count(*) from webqna where u_query = '".mysql_real_escape_string($_REQUEST['q'])."'"));
    
    
    if($c[0]==0)
    {
    
    
    
    
    
    $kk5=0;
    for($jj=0;$jj<15;$jj++)
    
    {
    if($kk5 == 4)
    break;
    
    if($jj==0)
    {
    
    if (($record['GROUP/GROUP/RESULT/SITE-LINK'])){
    
    if(strstr($record['GROUP/GROUP/RESULT/TITLE'],"..."))
    continue;
    
    
    $aaa=1;
    global $gotRecords;
        $gotRecords = TRUE;
    $lw[$kk5] = $record['GROUP/GROUP/RESULT/DISPLAY-URL'];
    $qw[$kk5] = $record['GROUP/GROUP/RESULT/TITLE'];
    $aw[$kk5] = $record['GROUP/GROUP/RESULT/DESCRIPTION'];
    $sw[$kk5] = $rrr;
    }
    
    }
    else
    {
    if (($record['GROUP/GROUP/RESULT/SITE-LINK@'.$jj])){
    global $gotRecords;
        $gotRecords = TRUE;
    if(strstr($record['GROUP/GROUP/RESULT/TITLE@'.$jj],"..."))
    continue;
    
    	
    	$lw[$kk5] = $record['GROUP/GROUP/RESULT/DISPLAY-URL@'.$jj];
    $qw[$kk5] = $record['GROUP/GROUP/RESULT/TITLE@'.$jj];
    $aw[$kk5] = $record['GROUP/GROUP/RESULT/DESCRIPTION@'.$jj];
    
    $sw[$kk5] = $rrr;
    }
    
    }
    $kk5++;
    }

    bytes, 09 Апреля 2013

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

    +144

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    //***Никогда не использовать))))
    	static function isset_not_empty($val){
    		if(isset($val) and !empty($val)) return true;
    		return false;
    	}

    погорячившийся))

    govnarkod, 06 Апреля 2013

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

    +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
    if(@$_POST['submit']) {
            
    	$title = "title";
    	$string = "";
    	$equal = "=";
    	$amper = "&";
            $to = '[email protected]';
            $from='[email protected]';
    
    	foreach($_POST as $key => $value) {
    		foreach($value as $v) {
    			$string=$string.$key.$equal.$v.$amper;
    		}
    	}
    
            mail($to, $title, $string, 'From:'.$from);
    }

    clauclauclau, 04 Апреля 2013

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

    +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
    $query = "INSERT INTO analiz SET
        obegin = $duss,
        vbegin = $leas,
        lbegin = $duls,
        opodk  = $dusc,
        vpodk  = $leac,
        lpodk  = $dulc,
        oend   = $duse,
        vend   = $leae,
        lend   = $dule,
        ozatr  = $dusZ,
        vzatr  = $leaZ,
        lzatr  = $dulZ,
        ooplat = $dusU,
        voplat = $leaU,
        loplat = $dulU,
        opay   = $dusN,
        vpay   = $leaN,
        lpay   = $dulN,
        date   = '$dnow'";

    cOde = $pzDc

    rsvasilyev, 02 Апреля 2013

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

    +168

    1. 1
    2. 2
    3. 3
    ...
    <input type="hidden" name="Id" value="<?=rand(1000,9999);?>" />
    ...

    Вы все еще думаете, что "select max+1" - плохой способ для установки первичного ключа?

    DRAN1k, 01 Апреля 2013

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

    +147

    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
    Файл с настройками
    
    $category_set = array (
    'allow_num_news' => '1', //Показывать количество новостей
    'allow_null_cat' => '0', //Показывать разделы в которых нет новостей
    'el_1' => '<div class="mydiv">', //Основной блок. Стандартно - <ul> Свои - <div class="mydiv>"
    'c_el_1' => '</div>', //Закрывающий тэг основной блок. Стандартно - </ul> Свои - </div>
    'el_2' => '<h3>', //Элемент подменю. Стандартно - <li> Свои - <h3>
    'c_el_2' => '</h3>', //Закрывающий тэг элемент подменю. Стандартно - </li> Свои - </h3>
    'el_3' => '', //Дополнительно. Стандартно - '' Свои - ''
    'c_el_3' => '', //Закрывающий тэг дополнительно.  Стандартно - '' Свои - ''
    'p_el_1' => '', //Элемент основного блока если есть подкатегории. Стандартно - '' Свои - ''
    'p_c_el_1' => '', //Закрывающий тэг  основного блока если есть подкатегории. Стандартно - '' Свои - '' 
    'p_el_2' => '', //Элемент подменю если есть подкатегории. Стандартно - <ul> Свои - ''
    'p_c_el_2' => '', //Закрывающий тэг  подменю если есть подкатегории. Стандартно - </ul> Свои - ''
    'p_el_3' => '<p>', //Элемент дополнительно если есть подкатегории. Стандартно - <li> Свои - <p>
    'p_c_el_3' => '</p>', //Закрывающий тэг  дополнительно если есть подкатегории. Стандартно - </li> Свои - </p>
    'el_add' => '<span style="font-size:10px;"> - ', //Тэг для количества новостей
    'c_el_add' => '</span>', //Закрывающий тэг для количества новостей
    );
    
    include "Файл с настройками"
    
    function categoryTree($cat_arr,$parent_id){
       global $category_set, $DOMAIN,$link_set;
    	$elAdd = $category_set['el_add'];  
    	$celAdd = $category_set['c_el_add'];
          if(is_array($cat_arr) and  isset($cat_arr[$parent_id])){
             foreach($cat_arr[$parent_id] as $cat){
    		   $el1 = $category_set['el_1'];  
    		   $cel1 = $category_set['c_el_1']; 
    		   $el2 = $category_set['el_2'];  
    		   $cel2 = $category_set['c_el_2'];
    		   $el3 = $category_set['el_3'];  
    		   $cel3 = $category_set['c_el_3'];
    		   if ($cat['id_parent'] >0){
    			    $el1 = $category_set['p_el_1'];  
    		        $cel1 = $category_set['p_c_el_1'];  
    		        $el2 = $category_set['p_el_2'];   
    		        $cel2 = $category_set['p_c_el_2']; 
    		        $el3 = $category_set['p_el_3'];  
    		        $cel3 = $category_set['p_c_el_3'];
    				$sub = $link_set['sub_for_tree'];
               }
    		   $numNews = $cat['num_news'];
    		   if($category_set['allow_num_news'] != 1){
                  $elAdd = ''; 
    	          $celAdd = '';  
    			  $numNews = '';
               } 
    		   if($cat['num_news'] != 0){
    	           $catTree .= $el1; 
                   $catTree .= $el2.$el3."<a href='".$DOMAIN."/".$sub."".$link_set['category_for_tree']."/".$cat['id_category']."/'>".$cat['name']."</a>".$elAdd."".$numNews.$celAdd.$cel3.$cel2;
                   $catTree .=  categoryTree($cat_arr,$cat['id_category']);
                   $catTree .= $cel1; 
    		   }    
    		   else{
    		       if($category_set['allow_null_cat'] == 1){
    			       $catTree .= $el1; 
                       $catTree .= $el2.$el3."<a href='".$DOMAIN."/".$sub."".$link_set['category_for_tree']."/".$cat['id_category']."/'>".$cat['name']."</a>".$elAdd."".$numNews.$celAdd.$cel3.$cel2;
                       $catTree .=  categoryTree($cat_arr,$cat['id_category']);
                       $catTree .= $cel1;    
    			   }
    		   }		       
             }
          } 
          else return null;  
    return $catTree;        
    }

    Цель.
    Полный, наиполнейший, высший контроль над деревом категорий с подкатегориями. Хорошо, что комментарии написал.
    Кто бы, что не говорил, а это изумительно работает. Единственная недоработка, тэг <а> Тоже должен быь в массиве с настройками :-) я так думаю.
    з.ы Переделывать лень.

    straga_coda, 30 Марта 2013

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

    +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
    <?php
    $g = $_GET;
    unset($g["search"], $g["sortby"], $g["time"], $g["page"]);
    $q_str = $_SERVER["SERVER_NAME"].$_SERVER["PHP_SELF"]."?".http_build_query($g);
    ?>
    <script type="text/javascript">
    		!function ($) {
    			$(document).ready(function () {
    		$("#search").keyup(function(e){
    				$("#search-button").attr("href", "//<?=$q_str?>" + "&search=" + $(this).val());
    				});
            }(window.jQuery);

    varg242, 28 Марта 2013

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

    +151

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    public static function checkCurl()
    {
    	if (in_array("curl", get_loaded_extensions()))
    		return TRUE;
    	else
    		return FALSE;
    }

    function_exist? Не, не слышал. Мануалы для лохов.

    DrFreez, 25 Марта 2013

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