- 1
- 2
- 3
- 4
final public function getModelId()
{
return '42';
}
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+147
final public function getModelId()
{
return '42';
}
+165.3
$articles = ServiceArticles::getArticlesList($page->pageID, ARTICLE_TYPE_ARTICLE, 0, 1);
foreach ($articles as $article) $articleID = $article;
$article = new ServiceArticles($articleID);
Обнаружено во время рефизии кода. Блок показа одной новости. Возвращается обычный неассоциативный массив. Нахера foreach вместо $articles[0], даже автор толком объяснить не смог.
+170.6
<?php
foreach ($_REQUEST as $s => $v)
{
$s = strtolower($s);
$_REQUEST[$s] = $v;
}
$aaa = urlencode(urldecode($_REQUEST['aaa']));
$q = urlencode(urldecode($_REQUEST['q']));
$bbb = urldecode($_REQUEST['bbb']);
$ccc = intval($_REQUEST['ccc']);
$ddd = intval($_REQUEST['ddd']);
if ($ddd > 16384)
$ddd = 0;
if (isset($_REQUEST['ddd2']))
$ddd2 = trim(strtolower(urldecode($_REQUEST['ddd2'])));
else
$ddd2 = trim(strtolower(urldecode($_REQUEST['ddd'])));
if (!preg_match('/^[0-9a-z_\-]*$/i', $ddd2))
{
$ddd2 = preg_replace('/[^0-9a-z_\-]+/i', '', $ddd2);
if (strlen($ddd2) > 16)
$ddd2 = substr($ddd2, 0, 16);
}
if (strlen($ddd2) <= 16 && strlen($ddd2) >= 1)
{
$ddd = 0;
} else
{
$ddd2 = '';
}
?>
+175.4
function makeQuery($keywords, $item, $type="and")
{
// Тут аффтар вестимо вырезает последовательности из больше чем одного пробела
for ($i=0; $i<1000; $i++)
{
$keywords=str_replace(" "," ", $keywords);
}
$keywords.=" ";
$que="";
// А эта хуета вместо explode( " ", $keywords )
while (strpos($keywords, " "))
{
$que.=" $type $item like '%".substr($keywords, 0, strpos($keywords, " "))."%'";
$keywords=substr($keywords,strpos($keywords, " ")+1);
}
return $que;
}
Функция генерит SQL для поиска. Нарыл в коде чужой чудо-цмски. Такой феерической реализации в жизни не встречал...
+164.5
if($s_r1>0){
while($s_ww_1=mysql_fetch_object($s_q_1)){
$row_repl1["id"]=$s_ww_1->id;
$row_repl1["name"]=$s_ww_1->name;
$row_repl1["nick"]=$s_ww_1->nick;
if($s_ww_1->nick==''){
$row_tpl1 = new FileTemplate($row_repl1, "TEMPL/shabl119.tpl");
}else{
$row_tpl1 = new FileTemplate($row_repl1, "TEMPL/shabl120.tpl");
}
$row_repl0["T_level1"].=$row_tpl1->parse();
$row_repl1=array();
}// end while
@mysql_free_result($s_q_1);
}//if
$row_tpl0 = new FileTemplate($row_repl0, "TEMPL/shabl152.tpl");
$row_tpl0->display();
$row_repl0=array();
}// end while
@mysql_free_result($s_q);
}//if
}elseif($lnk1==47){
$s_q=mysql_query("SELECT id, name, descr FROM experts WHERE id=$lnk2 LIMIT 1");
$s_r1 = mysql_error() ? 0 : mysql_num_rows($s_q);
if($s_r1>0){
while($s_ww=mysql_fetch_object($s_q)){
$row_repl["id"]=$s_ww->id;
$row_repl["name"]=$s_ww->name;
$row_repl["descr"]=$s_ww->descr;
$row_tpl = new FileTemplate($row_repl, "TEMPL/shabl18.tpl");
$row_tpl->display();
$row_repl=array();
}// end while
@mysql_free_result($s_q);
}//if
}elseif($lnk1==54){
$s_q=mysql_query("SELECT id, name, subtitle, type, number, doclevel, body, date, descr, txt, shows, prompt FROM documents WHERE id=$lnk2 LIMIT 1");
$s_r1 = mysql_error() ? 0 : mysql_num_rows($s_q);
if($s_r1>0){
while($s_ww=mysql_fetch_object($s_q)){
$row_repl["id"]=$s_ww->id;
$row_repl["name"]=$s_ww->name;
$row_repl["subtitle"]=$s_ww->subtitle;
$row_repl["ParentType"]=$s_ww->type;
$ParentType=$row_repl["ParentType"];
$s_q2=mysql_query("select name as type_doctypes_name from doctypes where id=".$s_ww->type."");
$s_n2 = mysql_error() ? 0 : mysql_num_rows($s_q2);
if($s_n2>0){
$s_w2=mysql_fetch_object($s_q2);
$row_repl["type_doctypes_name"]=stripslashes($s_w2->type_doctypes_name);
@mysql_free_result($s_q2);
}//s_n2
$row_repl["number"]=$s_ww->number;
$row_repl["doclevel"]=$s_ww->doclevel;
$s_q2=mysql_query("select name as doclevel_doclevels_name from doclevels where id=".$s_ww->doclevel."");
$s_n2 = mysql_error() ? 0 : mysql_num_rows($s_q2);
if($s_n2>0){
$s_w2=mysql_fetch_object($s_q2);
$row_repl["doclevel_doclevels_name"]=stripslashes($s_w2->doclevel_doclevels_name);
@mysql_free_result($s_q2);
}//s_n2
$row_repl["body"]=$s_ww->body;
$row_repl["date"]=mysqldate_to_str($s_ww->date);
$row_repl["descr"]=$s_ww->descr;
$row_repl["txt"]=$s_ww->txt;
$row_repl["shows"]=intval($s_ww->shows)+1;
@UpdateFCounter("documents","shows","copyshows","id",$s_ww->id);
Использовано в коде одного из проектов, оставшихся на поддержку. Такой красоты там только в одном файле - около 8000 строк.
+144.4
if (1 || $ar_res['NAME'] == "Московские офисы")
У кого есть трава ?
+170.7
if ((($company == "1none")&&($office == "loreal"))||($company == "146/710")){
$from = "[email protected]";
if ($kto == "c"){
$to = $req1['email'].",[email protected]";
}
else{
$to = $req1['MAILR'].",[email protected]";
}
}
else{
$from = "[email protected]";
if ($kto == "c"){
$to = $req1['email'].",[email protected]";
}
else{
$to = $req1['MAILR'].",[email protected]";
}
}
сейчас вот это говно приходится переводить на нормальный язык
+158.2
if(!$result = MYSQL_QUERY("SELECT gmr_id, gam_chip, gam_price, gam_status FROM ".PREFIX."_games;")) { die(mysql_error()); exit; }
if(MYSQL_NUMROWS($result))
{
while($rows = mysql_fetch_row($result))
{
if(isset($gmr_chip[$rows[0]])) $gmr_chip[$rows[0]] += $rows[1];
else $gmr_chip[$rows[0]] = $rows[1];
if(isset($gmr_price[$rows[0]])) $gmr_price[$rows[0]] += $rows[2];
else $gmr_price[$rows[0]] = $rows[2];
}
}
if(!$result = MYSQL_QUERY("SELECT gmr_id, gmr_regdate, gmr_login, gmr_mail, gmr_credits, gmr_money, gmr_status, gmr_birthday, adv_id FROM ".PREFIX."_gamers WHERE gmr_birthday != '';")) { die(mysql_error()); exit; }
if(MYSQL_NUMROWS($result))
{
while($rows = mysql_fetch_row($result))
{
$gmr_id[$rows[0]] = $rows[0];
$gmr_regdate[$rows[0]] = $rows[1];
$gmr_login[$rows[0]] = $rows[2];
$gmr_mail[$rows[0]] = $rows[3];
$gmr_credits[$rows[0]] = $rows[4];
$gmr_money[$rows[0]] = $rows[5];
$gmr_status[$rows[0]] = $rows[6];
$gmr_birthday[$rows[0]] = $rows[7];
if(!isset($gmr_quations[$rows[0]])) $gmr_quations[$rows[0]] = 0;
if(!isset($gmr_chip[$rows[0]])) $gmr_chip[$rows[0]] = 0;
if(!isset($gmr_price[$rows[0]])) $gmr_price[$rows[0]] = 0;
if(isset($gmr_adverted[$rows[8]])) $gmr_adverted[$rows[8]]++;
else $gmr_adverted[$rows[8]] = 1;
$gadv_id[$rows[0]] = $rows[8];
}
}
MYSQL_QUERY("DROP TABLE ".PREFIX."_tmp_gamers;");
if (!mysql_query ("CREATE TABLE ".PREFIX."_tmp_gamers (
gmr_id INT UNSIGNED NOT NULL AUTO_INCREMENT,
gmr_regdate DATE NOT NULL,
gmr_login CHAR(32) NOT NULL,
gmr_mail CHAR(32) NOT NULL,
gmr_credits INT UNSIGNED NOT NULL,
gmr_money DEC(10, 2) UNSIGNED NOT NULL,
gmr_status INT UNSIGNED NOT NULL,
gmr_birthday CHAR(12) NOT NULL,
gmr_quations INT UNSIGNED NOT NULL,
gmr_chip DEC(10, 2) UNSIGNED NOT NULL,
gmr_price DEC(10, 2) UNSIGNED NOT NULL,
gmr_adverted INT UNSIGNED NOT NULL,
adv_id INT UNSIGNED NOT NULL,
UNIQUE KEY (gmr_id));")) { die(mysql_error()); exit; }
$first = true;
$query = "INSERT INTO ".PREFIX."_tmp_gamers VALUES ";
if(isset($gmr_id))
{
foreach($gmr_id as $key)
{
if(!$first) $query .= ', ';
else $first = false;
if(!isset($gmr_adverted[$key])) $gmr_adverted[$key] = 0;
$query .= "($gmr_id[$key], '$gmr_regdate[$key]', '$gmr_login[$key]', '$gmr_mail[$key]', $gmr_credits[$key], $gmr_money[$key], $gmr_status[$key], '$gmr_birthday[$key]', $gmr_quations[$key], $gmr_chip[$key], $gmr_price[$key], $gmr_adverted[$key], $gadv_id[$key])";
}
$query .= ";";
if(!MYSQL_QUERY($query)) { die(mysql_error()); exit; }
}
unset($gmr_id);
unset($gmr_regdate);
unset($gmr_login);
unset($gmr_mail);
unset($gmr_credits);
unset($gmr_money);
unset($gmr_status);
unset($gmr_birthday);
unset($gmr_quations);
unset($gmr_chip);
unset($gmr_price);
unset($gmr_adverted);
unset($gadv_id);
$type = 'norm';
И кучка unset-ов! Ты гляди - он еще и память экономит!
В таблице _gamers over 5k записей. Не трудно догадаться, каких размеров получается строка $query? И главный вопрос: нахрена временная таблица?
+148.7
if(!$result = MYSQL_QUERY("SELECT gmr_id, gam_chip, gam_price, gam_status FROM ".PREFIX."_games;")) { die(mysql_error()); exit; }
if(MYSQL_NUMROWS($result))
{
//какой-то код
}
А я-то думаю, чего это скрипту не хватает памяти - а в таблице несколько тысяч записей.
+148.4
$a1=proverka($a1,array(',','.','\'','"','`'));
У чела походу не только с мозгами, но и с пробелом проблемы...