- 1
if ( $('.menu_center > ul > li:eq(6)').attr('id') != 'current' )
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+160
if ( $('.menu_center > ul > li:eq(6)').attr('id') != 'current' )
Jquery в джумле:)
+160
<?if ($j == 0)
{
if (in_array("PRICE", $arParams["COLUMNS_LIST"])):?>
<td><?=$arBasketItems["PRICE_FORMATED"]?></td>
<?endif;?>
<?}?>
<?if ($j != 0)
{
if (in_array("PRICE", $arParams["COLUMNS_LIST"])):?>
<td></td>
<?endif;?>
<?}?>
+160
<?php
class SQLInjection
{
private function filter(&$query)
{
$sql_inj = array("'", ";", "/**/", "/UNION/", "/SELECT/", "DELETE", "AND" "AS ", "EVAL","<?",'"',"$",'..');
foreach ($sql_inj as $res) {
if (stristr($query, $res)) {
unset($query);
}
}
$query = mysql_real_escape_string($query);
}
public function filterInject($query)
{
filterInjectGET();
filterInjectPOST();
filterInjectCOOKIE();
filterInjectSERVER();
filterInjectSESSION();
filterInjectFILES();
}
public function filterInjectGET()
{
filter($GLOBALS['_GET']);
}
/*Остальные функции filterInject выгядят аналогично*/
}
?>
Ультимативная борьба с SQL-инъекциями. Враг не пройдёт! Бланк-пейдж встретит его непреступной стеной!
+160
<?php
//error_reporting(0);
list($sms, $ss) = explode(' ', microtime());
$start_time=($ss+$sms);
unset($sms);
unset($ss);
include ROOT.'config.php';
define('VERSION', '0.8');
if(!isset($installed) && $_SERVER['PHP_SELF']!='/install.php') header("Location: /install.php");
if(isset($installed)) $db = mysql_connect($dbhost, $dbuser, $dbpass) or die('Could not connect to database server');
if(isset($installed))mysql_select_db($dbname) or die('Could not select database');
if(isset($installed)) mysql_set_charset('utf8');
$sql_query_cnt = 1;
function db_fetch_obj_all($query){
$res = mysql_query($query);
$GLOBALS['sql_query_cnt']++;
if($res==false) retnulla($query);
$foa = array();
while($fo = @mysql_fetch_object($res)) $foa[]=$fo;
return $foa;
}
function db_query($q){
$res = mysql_query($q);
$GLOBALS['sql_query_cnt']++;
if($res==false) retnulla($q);
return $res;
}
function retnulla($q){
echo '<div class="warn">Ошибка при выполнении SQL-запроса</div><div class="post">'.$q.'</div><div class="post">'.mysql_error().'</div>';
}
function getConf($key){
$cfg = db_fetch_obj_all("SELECT * FROM `tcms_config` WHERE `name`='$key'");
return $cfg[0]->value;
}
function at_page(){
global $loggedin;
if($loggedin){
$fobj = db_fetch_obj_all('SELECT * FROM `tcms_users` WHERE `id`='.$_SESSION['uid']);
return $fobj[0]->at_page;
}
else return getConf('at_page');
}
function curr_theme(){
global $loggedin;
if($loggedin){
$fobj = db_fetch_obj_all('SELECT * FROM `tcms_users` WHERE `id`='.$_SESSION['uid']);
return $fobj[0]->use_theme;
}
else return getConf('default_theme');
}
function puthead($title=''){
global $uid;
if($title!='') $page_name = $title;
include ROOT.'themes/'.curr_theme().'/head.php';
}
function putfoot($menu=''){
global $foot_menu, $mode;
if($menu!='') $foot_menu.= ' | '.$menu;
include ROOT.'themes/'.curr_theme().'/foot.php';
}
session_start();
$loggedin = false;
if(isset($_SESSION['uid'])) $loggedin = true;
if($loggedin){
$fobj = db_fetch_obj_all('SELECT * FROM `tcms_users` WHERE `id`='.$_SESSION['uid']);
$uid = $fobj[0]->id;
$login = $fobj[0]->login;
$mode = $fobj[0]->mode;
$ban = $fobj[0]->ban;
$banned = $ban>time();
if($banned) $tobanend = $ban-time();
}else $mode=0;
function escape($str){
$str = htmlspecialchars($str);
$str = mysql_real_escape_string($str);
return $str;
}
function lower($str){
return mb_strtolower($str, 'utf8');
}
function len($str){
return mb_strlen($str, 'utf8');
}
// и так далее...
func.php
А ООП в class.php там просто отпад.
Там всю систему сюда постить надо, лол.
Сношу архив нафиг, такой код нужно сжигать в доменных печах.
+160
<?php
define('ROOT', '../');
include ROOT.'func.php';
include ROOT.'class.php';
puthead('Форум');
$fposts = getConf('forum_posts_disp')==1;
if($mode>2) echo '<a href="/forum/newcat.php">[Создать форум]</a>';
$cats = forum::get_cats();
foreach($cats as $cat){
echo '<div class="forumcat"><b>'.$cat->name.'</b>';
$forums = forum::get_catforums($cat->id);
foreach($forums as $f){
echo '<br><a href="/forum/viewforum.php?id='.$f->id.'">'.$f->name.'</a>';
# МОЖЕТ ВЫЗВАТЬ КРИТИЧЕСКУЮ НАГРУЗКУ СЕРВЕРА!! Лучше ОТКЛЮЧИТЬ!!!!!
if($fposts){
echo ' ('.forum::count_topics($f->id).'/'.forum::count_posts_forum($f->id).')';
}
# КОНЕЦ ОПАСНОГО КУСКА
if($mode>2) echo ' <a href="/forum/upforum.php?id='.$f->id.'">[Поднять выше]</a> <a href="/forum/del.php?forum='.$f->id.'">[Удалить]</a>';
}
if($mode>2) echo '<hr><a href="/forum/newforum.php?id='.$cat->id.'">[Создать подфорум]</a> <a href="/forum/del.php?cat='.$cat->id.'">[Удалить]</a> <a href="/forum/upcat.php?id='.$cat->id.'">[Поднять выше]</a>';
echo '</div>';
}
putfoot();
?>
Оттуда же.
/forum/index.php
+160
if(!isset($_SESSION['captcha'])) $error = "Please Enable Cookies";
else {
$name = $_POST["name"];
$msg = $_POST["msg"];
if(strlen($msg) <= 2)
{ $error = "слишком маленькое сообщение"; }
else if($_POST["captcha"] !== $_SESSION["captcha"])
{ $error = "символы не введено не верно"; }
else if(strlen($name) > 25)
{ $error = "слишком длиное имя"; }
else if(strlen($msg) > 256)
{ $error = "слишком длиное сообщение"; }
else if(strlen($name) > 25 && strlen($msg) >256)
{ $error = "слишком длинное имя и сообщение"; }
else if(strlen($name) <= 25 && strlen($msg) <=256)
{
$msg = str_value($msg);
if($msg == "") $error = "введите сообщение";
else {
write_file($name,$msg);
$d2d_1 = mktime(0,0,0,1,1,2037);
setcookie('nameData',$name,$d2d);
$error = "";
}
}
}
}
сперто из гостевой книги
+160
// START MY FOR MENU
$list_pages = preg_replace('/<li([^>]*)>/is', ' ', $output);
$list_pages = str_replace('</li>', '', $list_pages);
$list_pages = preg_replace('/<a/is', '</td><td class="menu"> <a$1', $list_pages);
if (isset($_GET['page_id']) AND !is_numeric($_GET['page_id'])) { exit("ERROR!"); }
$pd = mysql_real_escape_string($_GET['page_id']);
if(strstr($_SERVER['REQUEST_URI'], 'page_id='.$pd) == TRUE) {
$list_pages = preg_replace('/<\/td><td class=\"menu\"\> <a href=\"(http:\/\/'.$_SERVER["HTTP_HOST"].'\/\?page_id='.$pd.')/is', '</td><td class="menu_click"><a href="$1', $list_pages);
}
//for($i=0; $i<sizeof($pages); $i++) {
//$link = $pages[$i]->guid;
//$lol = '';
//if(strstr($_SERVER['REQUEST_URI'], '?') == TRUE) {
//if ($link == 'http://'.$_SERVER['HTTP_HOST'].'/?'.$_SERVER['QUERY_STRING']) {
//$list_pages = preg_replace('/<\/td><td class=\"menu\"\> <a href=\"(http:\/\/'.$_SERVER["HTTP_HOST"].'\/\?'.$_SERVER["QUERY_STRING"].')/is', '</td><td class="menu_click2"><a href="$1', $list_pages);
//}
// } else {
//if ($link == 'http://'.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']) {
//$list_pages = preg_replace('/<\/td><td class=\"menu\"\> <a href=\"(http:\/\/'.$_SERVER["HTTP_HOST"].$_SERVER["REQUEST_URI"].')/is', '</td><td class="menu_click2"><a href="$1', $list_pages);
//}
// }
//}
$output = $list_pages;
$str = preg_split("/<\/a\>/i", $output);
$moar = '';
for ($i=0; $i<sizeof($pages); $i++)
{
$moar .= preg_replace('/<\/td><td class=\"menu\"\> <a href=\"(.*)\" title=\"(.*)\">/is',
'</td><td class="menu" onclick="linkgo(\'$1\');" id="moar'.$i.'" onmouseover="menu1(\'moar'.$i.'\');" onmouseout="menu2(\'moar'.$i.'\');"> <a href="$1" title="$2">', $str[$i]);
$moar .= "</a>";
}
$output = $moar;
// END MY FOR MENU
None.
+160
function sinonimizer($my_text)
{
$arr_ = file(dirname(__FILE__).'/new_words.txt');
$arr = array();
foreach ($arr_ as $str)
{
$str = trim($str);
$t1 = explode('|', $str);
$master = trim($t1[0]); //пихаем слово которое заменять
if (!isset($t1[1]))
continue;
$t2 = explode('|', $t1[1]); //Тут слово которым заменять
if (sizeof($t2) == 0)
continue;
//Дальше волшебные мунипуляции
foreach ($t2 as $t)
$arr[crc32(strtolower($master))][crc32(strtolower(trim($t)))] = array('word' =>
trim($t), 'rep' => 0);
}
$my_text=str_replace(array("\n","\t","\r")," ",$my_text);
$text_arr = explode(' ', $my_text);
$str_ = '';
foreach ($text_arr as $item)
{
$fl = false;
$t = str_replace('.', '', str_replace(',', '', str_replace('!', '',
str_replace('?', '', str_replace('"', '', str_replace('\'', '',
str_replace('<', '', str_replace('>', '', str_replace(':', '',
str_replace(';', '', $item))))))))));
if (isset($arr[crc32(strtolower($t))]))
{
foreach ($arr[crc32(strtolower($t))] as $k => $v)
if ($v['rep'] == 0)
{
$str_ .= str_ireplace($t, "$v[word]", $item) . ' ';
$$v['rep'] = 1;
$fl = true;
break;
}
}
if (!$fl) $str_ .= $item . ' ';
}
return $str_;
}
function sinonimizer_new($my_text)
{
$arr_ = file(dirname(__FILE__).'/new_words.txt');
$arr = array();
foreach ($arr_ as $str)
{
$str = trim($str);
$t1 = explode('|', $str);
$master = trim($t1[0]); //пихаем слово которое заменять
if (!isset($t1[1]))
continue;
$t2 = explode('|', $t1[1]); //Тут слово которым заменять
if (sizeof($t2) == 0)
continue;
//Дальше волшебные мунипуляции
foreach ($t2 as $t)
$arr[(strtolower($master))][(strtolower(trim($t)))] = array('word' =>
trim($t), 'rep' => 0);
}
$my_text=str_replace(array("\n","\t","\r")," ",$my_text);
$text_arr = explode(' ', $my_text);
$str_ = '';
foreach ($text_arr as $item)
{
$fl = false;
$t = str_replace('.', '', str_replace(',', '', str_replace('!', '',
str_replace('?', '', str_replace('"', '', str_replace('\'', '',
str_replace('<', '', str_replace('>', '', str_replace(':', '',
str_replace(';', '', $item))))))))));
if (isset($arr[(strtolower($t))]))
{
foreach ($arr[(strtolower($t))] as $k => $v)
if ($v['rep'] == 0)
{
$str_ .= str_ireplace($t, "$v[word]", $item) . ' ';
$$v['rep'] = 1;
$fl = true;
break;
}
}
if (!$fl) $str_ .= $item . ' ';
}
return $str_;
волшебные мунипуляции
+160
<?php
if ($res) {
$i=0;
while ( $arr = $res->fetchRow() )
{
$id = $arr['id'];
$userid = $arr['userid'];
$alias = $arr['alias'];
$startcity = $arr['startcity'];
$endcity = $arr['endcity'];
$godate = $arr['godate'];
$gohour = $arr['gohour'];
$gorecset = mapSetToWeekdays($arr['gorecset']);
$recdays = implode(" ", $gorecset);
$godate = ereg_replace("Mon", $l['mo'], $godate);
$godate = ereg_replace("Tue", $l['tu'], $godate);
$godate = ereg_replace("Wed", $l['we'], $godate);
$godate = ereg_replace("Thu", $l['th'], $godate);
$godate = ereg_replace("Fri", $l['fr'], $godate);
$godate = ereg_replace("Sat", $l['sa'], $godate);
$godate = ereg_replace("Sun", $l['su'], $godate);
$rides[$i] = array('id' => $id,
'userid' => $userid,
'alias' => $alias,
'startcity' => $startcity,
'endcity' => $endcity,
'gohour' => $gohour,
'godate' => $godate,
'recdays' => $recdays,
);
$i++;
}
$SMARTY->assign("rides", $rides);
}
Этот чудесный пример говнокода написал один финн, с которым мне приходится работать вместе.
Как видно, он, имея 4 года опыта разработки на PHP, так и не знает про extract(), compact(), а также про возможность использовать массивы в качестве аргументов str_replace. Хотя, в данном случае можно было просто написать $rides[] = $arr;
+160
<?php
include '/system/config_bd.php'; // соединение с базой
class pagination_start {
public $page;
public $CountListPage=10;
public $sql="SELECT * FROM `news`";
public $start;
public $limit;
public $ires;
public function page_settings() {
$this->page_get();
$this->start=($this->page-1)*$this->CountListPage;
$this->limit=" LIMIT $this->start,$this->CountListPage";
$this->ires=mysql_query($this->sql.$this->limit);
}
public function page_get() {
if(empty($_GET['page'])){$this->page=1;}
else {$this->page=$_GET['page'];}
}
}
class pagination_end extends pagination_start{
public $link_interval;
public $i;
public $sp;
public function pagination($class_all,$class_once) {
$link_page = '';
$this->page_get();
$count=mysql_num_rows(mysql_query($this->sql));
if($count>$this->CountListPage){
$CountList=ceil($count/$this->CountListPage);
if($this->page > 3 && $CountList > 5){echo '<span class="'.$class_all.'"><a href="?page=1'.$this->link_interval.'">1</a></span><span class="'.$class_all.'">...</span>';}
if($this->page > 3 && $CountList > 5){$this->sp=$this->page-2;}else{$this->sp=1;}
if($this->page > $CountList-3 && $CountList > 5){$this->sp=$CountList-4; }
if($CountList>5)$cpc=5;else $cpc=$CountList;
for($this->i=$this->sp;$this->i<$this->sp+$cpc;$this->i++){
if($this->i == $this->page){ printf ('<span class="'.$class_once.'">%s</span>',$this->i); }
else{ $suit=$this->link_interval.$this->i;
$links_cent = '<span class="'.$class_all.'"><a href="?page='.$suit.'">'.$this->i.'</a></span>';
echo $links_cent; } }
$suit=$this->link_interval."?page=".$CountList."";
if($this->page<=$CountList-3 and $CountList>5){echo '<span class="'.$class_all.'">...</span> <span class="'.$class_all.'"><a href="'.$suit.'">'.$CountList.'</a></span> ';} }
}
}
$CountListPage = 5; // Сколько объектов отображать на странице # по умолчанию 10
$sql="SELECT * FROM `news` "; // SQL запрос # по умолчанию "SELECT * FROM `news`"
$class_all='page_all'; // Css класс всех страниц кроме текущей
$class_once='class_once'; // Css класс всех страниц кроме текущей
/* Формирование страниц и sql запрос */
$pagination = new pagination_start();
$pagination->CountListPage = $CountListPage;
$pagination->sql = $sql;
$pagination->page_settings();
while($ires_result=mysql_fetch_array($pagination->ires))
{
echo $ires_result['id']."<br/>";
}
/* Пагенирование */
$pagination_end = new pagination_end();
$pagination_end->CountListPage = $CountListPage;
$pagination_end->sql = $sql;
$pagination_end->pagination($class_all,$class_once); // От css клас от 2 страници до предпоследней