- 1
- 2
- 3
// Hack - blacklist
if ($msg->abonent == '12345678910')
die("Database error");
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+149
// Hack - blacklist
if ($msg->abonent == '12345678910')
die("Database error");
Найдено в крупном и сложном проекте, посреди часто вызываемого кода - проверка на забаненный номер (номер изменён).
+150
$Not = array('\\',",","/","¬","#",";",":","~","[","]","{","}",")","(","*","^","%","$","<",">","?","!",'"',"'","|");
...
function check($string){
$string = preg_replace("/[^a-zA-Z a-яА-яёЁ]/i", "",$string);
$string = str_replace($Not,'',$string);
$string = htmlspecialchars($string);
return $string;
}
Нашёл у себя убойный фильтр. Работает как зверь :-)
+147
<?/**
* Возвращаем все товары по фильтру
* @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) Пришел очередной чувак и порешал все, терь работает, но все костыли живут и будут жить))))))
+150
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++;
}
+144
//***Никогда не использовать))))
static function isset_not_empty($val){
if(isset($val) and !empty($val)) return true;
return false;
}
погорячившийся))
+159
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);
}
+160
$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
+168
...
<input type="hidden" name="Id" value="<?=rand(1000,9999);?>" />
...
Вы все еще думаете, что "select max+1" - плохой способ для установки первичного ключа?
+147
Файл с настройками
$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;
}
Цель.
Полный, наиполнейший, высший контроль над деревом категорий с подкатегориями. Хорошо, что комментарии написал.
Кто бы, что не говорил, а это изумительно работает. Единственная недоработка, тэг <а> Тоже должен быь в массиве с настройками :-) я так думаю.
з.ы Переделывать лень.
+153
<?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);