- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
$login = $_COOKIE['login'];
$pass = $_COOKIE['pass'];
$sec = $_COOKIE['sec'];
if ($pass == '')
{
header("Location: index.php");
exit;
}
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+161
$login = $_COOKIE['login'];
$pass = $_COOKIE['pass'];
$sec = $_COOKIE['sec'];
if ($pass == '')
{
header("Location: index.php");
exit;
}
Проверка авторизации в административной части сайта
+157
<a href="<?
$p=explode("p=",$_SERVER['HTTP_REFERER']);
$p=explode("&",$p[1]);
if(is_int($p[0]) && empty($p[0]))echo $_SERVER['HTTP_REFERER'];
else echo'/?p=search2&d='.$_GET[d].'&g='.$_GET[g];
?>" class="top_s">← назад</a>
+162
function image($id, $idname, $width, $height, $save, $jpg) {
...........................................................................................
//throw new Exception('Типо неизвестный формат');
echo 'Типо неизвестный формат изображения';
}
function video($id, $idname, $save, $wmv) {
.......................................................................................
//throw new Exception('Типо неизвестный формат');
echo "Типо неизвестный формат !" . $id['name'];
}
От автора "Ghgh", Новый остросюжетный код "Типо ошибка"
+159
// выбираем случайные категории
$sql="
SELECT `id`
FROM `category`
WHERE id>=(SELECT ROUND(RAND()*(SELECT COUNT(*) FROM `stat`)))
limit ".$this->limit;
$arr=Yii::app()->db->createCommand($sql)->query();
// в nn будем хранить строку вида a,b,...,e где abc -цифры
// позже мы скормим это в условие для sql запроса, это самый простой способ
$nn='';
foreach ($arr as $val){
$nn.=$val['id'].',';
}
//добавим в конце строки "end", чтобы избавиться от лишней запятой
$nn.='END';
// выбираем пользователей из случайных категории, сгенерированных ранее
$sql="
SELECT name, category_id, COUNT(category_id) AS total
FROM `stat`
JOIN `category` as C
WHERE C.id=category_id AND C.id in (".str_replace(',END','',$nn).")
GROUP BY category_id
limit ".$this->limit;
$arr=Yii::app()->db->createCommand($sql)->query();
Сказочный говнокод. Сохранены авторские комментарии.
+166
function CompareDates($date1, $date2)
{
$s_date1 = $this->CharToDateFunction($date1);
$s_date2 = $this->CharToDateFunction($date2);
$strSql = "
SELECT
if($s_date1 > $s_date2, 1,
if ($s_date1 < $s_date2, -1,
if ($s_date1 = $s_date2, 0, 'x')
)) as RES
";
$z = $this->Query($strSql, false, "FILE: ".__FILE__."<br> LINE: ".__LINE__);
$zr = $z->Fetch();
return $zr["RES"];
}
Bitrix. Функция прекрасно живет как минимум с 10 версии по сей день.
+159
/*
-----------------------------------------------------------------
Отмечаем все темы как прочитанные
-----------------------------------------------------------------
*/
$req = mysql_query("SELECT `forum`.`id`
FROM `forum` LEFT JOIN `cms_forum_rdm` ON `forum`.`id` = `cms_forum_rdm`.`topic_id` AND `cms_forum_rdm`.`user_id` = '$user_id'
WHERE `forum`.`type`='t'
AND `cms_forum_rdm`.`topic_id` Is Null");
while ($res = mysql_fetch_assoc($req)) {
mysql_query("INSERT INTO `cms_forum_rdm` SET
`topic_id` = '" . $res['id'] . "',
`user_id` = '$user_id',
`time` = '" . time() . "'");
}
$req = mysql_query("SELECT `forum`.`id` AS `id`
FROM `forum` LEFT JOIN `cms_forum_rdm` ON `forum`.`id` = `cms_forum_rdm`.`topic_id` AND `cms_forum_rdm`.`user_id` = '$user_id'
WHERE `forum`.`type`='t'
AND `forum`.`time` > `cms_forum_rdm`.`time`");
while ($res = mysql_fetch_array($req)) {
mysql_query("UPDATE `cms_forum_rdm` SET
`time` = '" . time() . "'
WHERE `topic_id` = '" . $res['id'] . "' AND `user_id` = '$user_id'");
}
Один из самых популярных мобильных движков - JohnCMS.
Скрипт отмечает темы форума как прочтенные. Частенько бывает за сотню непрочитанных тем. А я посещаю редко, так у меня вообще за тысячу переваливает иногда.
+160
if(floor($info['http_code'] / 100) >= 4) {
throw $this->castError($result);
}
Библиотека интеграции с Mandrill.
+153
//поменяет 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;
}
Супер функция, которая парсит картинки в тексте и заменяет на, как я понял, новые ссылки уже на собственном сервере.
Пока пытался разобраться, наступил когнитивный диссонанс.
+154
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? В чем магия?
З.Ы.: Пока писал, нашел в доках, что "волшебная" константа содержит так же пространство имен.
Извиняюсь, что не узнал об этом раньше.
Но я все же наложу сюда, с вопросом, даже учитывая всю эту информацию, почему мы не можем обойтись способами, исключающими использование константы?
(все равно получается говнокод, хоть и работающий)
+159
$st=$_GET['st'];
// проверяем допустимый номер категории
if ((((((($st != "1")&($st != "2"))&($st != "3"))&($st != "4"))&($st != "5"))&($st != "6")&($st != "7")&($st != "8")&($st != "0"))) {$st="0";};
// Гениальная реализация отношения многие-ко-многим - по флагу на каждый номер категории, проверяем какой флаг установлен
$zapros = "
SELECT
product.cod,
product.`name`,
sector.s0,
sector.s1,
sector.s2,
sector.s3,
sector.s4,
sector.s5,
sector.s6,
sector.s7,
sector.s8
FROM
product ,
sector
WHERE
product.cod = sector.cod AND sector.s".$st."=1
ORDER BY
product.id ASC
";
Вот такой код мне попался в самописном магазине, который заказали доработать (