- 1
$this->a[$this->c[$this->m]] = my_substr($this->t, $prev[2], ($v[0] - $prev[2]));
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+2
$this->a[$this->c[$this->m]] = my_substr($this->t, $prev[2], ($v[0] - $prev[2]));
Кусочек кустарного говношаблонизатора.
Без комментариев. В обоих смыслах.
+6
switch ($m->type) {
case 'photo':
echo sprintf('<div class="fb_photo %s"><a %s href="%s"><div style="background-image: url(\'%s\');"><b>%s</b><br>%s%s<div class="status">%s <img src="%s" /> %s <img src="%s" /></div></div></div>', ($showProfilePic ? 'padding65' : ''), (isset($_GET['nonavbar']) ? 'target="_top"' : 'target="_blank"'), $m->link . (isset($_GET['nonavbar']) ? '&openwithnavigation=1' : ''), str_replace("_s", "_n", $m->picture), $m->from->name, (!empty($m->message) ? $m->message.'<br>' : ''), ago($m->created_time, $timezone), isset($m->likes) && isset($m->likes->count) ? $m->likes->count : '', isset($m->likes) && isset($m->likes->count) ? buildUri('images/icons/like.png') : '', isset($m->comments) && isset($m->comments->count) ? $m->comments->count : '', isset($m->comments) && isset($m->comments->count) ? buildUri('images/icons/comment.png') : '');
break;
case 'video':
case 'link':
echo sprintf('<div class="fb_link %s"><a %s href="%s"><div style="width: 100%%; padding: 30px; box-sizing: border-box;border-bottom:1px solid #ccc;border-top:1px solid #ccc;"><img style="max-width: none; width:100px;" src="%s" /><div style="width: 100%%"><b>%s</b><br>%s</div></div><div style="position:absolute; right: 10px; bottom: 10px;" class="status">%s <img style="display: inline-block" src="%s" /> %s <img style="display: inline-block" src="%s" /></div></a></div>', ($showProfilePic ? 'padding65' : ''), (isset($_GET['nonavbar']) ? 'target="_top"' : 'target="_blank"'), $m->link . (isset($_GET['nonavbar']) ? '&openwithnavigation=1' : ''), $m->picture, $m->name, $m->message, ago($m->created_time, $timezone), isset($m->likes) && isset($m->likes->count) ? $m->likes->count : '', isset($m->likes) && isset($m->likes->count) ? buildUri('images/icons/like.png') : '', isset($m->comments) && isset($m->comments->count) ? $m->comments->count : '', isset($m->comments) && isset($m->comments->count) ? buildUri('images/icons/comment.png') : '');
//echo sprintf('<div class="fb_link"><a href="%s"><div><img src="%s" /><b>%s</b><br>%s<div class="status">%s likes, %s comments</div></div></div></div>', $m->link, str_replace("_s", "_n", $m->picture), $m->from->name, $m->message, $m->likes->count, $m->comments->count);
break;
case 'status':
echo sprintf('<div class="fb_link %s"><a %s href="%s"><div style="width: 100%%; padding: 30px; box-sizing: border-box;border-bottom:1px solid #ccc;border-top:1px solid #ccc;"><img style="max-width: none; width:100px;" src="%s" /><div style="width: 100%%"><b>%s</b><br>%s</div></div><div style="position:absolute; right: 10px; bottom: 10px;" class="status">%s <img style="display: inline-block" src="%s" /> %s <img style="display: inline-block" src="%s" /></div></a></div>', ($showProfilePic ? 'padding65' : ''), '', '', $m->picture, $m->name, $m->message, ago($m->created_time, $timezone), isset($m->likes) && isset($m->likes->count) ? $m->likes->count : '', isset($m->likes) && isset($m->likes->count) ? buildUri('images/icons/like.png') : '', isset($m->comments) && isset($m->comments->count) ? $m->comments->count : '', isset($m->comments) && isset($m->comments->count) ? buildUri('images/icons/comment.png') : '');
break;
default:
//echo 'TODO: ' . $m->type;
//var_dump($m);
break;
}
Верстка.
Уровень - бог.
+3
session_decode(session_encode());
что это вообще такое и зачем оно?
−2
<div class='min_content'>
<?php
$query_search = '`janr` LIKE "%'.$tip.'%" AND `xarakter_filma` LIKE "%'.$xar.'%" AND `detail_janr` LIKE "%'.$det.'%"';
$num = 12;
// Извлекаем из URL текущую страницу
$page = (int)$_GET['page'];
// Определяем общее число сообщений в базе данных
$count = "SELECT COUNT(*) FROM kino WHERE $query_search";
$ardyunq = $db->query($count);
$temp = $ardyunq->fetch(PDO::FETCH_NUM);;
If ($temp[0] > 0)
{
$tempcount = $temp[0];
// Находим общее число страниц
$total = (($tempcount - 1) / $num) + 1;
$total = intval($total);
// Определяем начало сообщений для текущей страницы
$page = intval($page);
// Если значение $page меньше единицы или отрицательно
// переходим на первую страницу
// А если слишком большое, то переходим на последнюю
if(empty($page) or $page < 0) $page = 1;
if($page > $total) $page = $total;
// Вычисляем начиная с какого номера
// следует выводить сообщения
$start = $page * $num - $num;
// Выбираем $num сообщений начиная с номера $start
$qury_start_num = " LIMIT $start, $num";
}
$query_search = '`janr` LIKE "%'.$tip.'%" AND `xarakter_filma` LIKE "%'.$xar.'%" AND `detail_janr` LIKE "%'.$det.'%"';
$sql = "SELECT * FROM kino WHERE $query_search ORDER BY god DESC $qury_start_num";
$result = $db->query($sql);
$rows = $result->fetch(PDO::FETCH_ASSOC);
if(count($rows) > 0){
while($row = $result->fetch(PDO::FETCH_ASSOC)) {
echo "
<div class='kino'>
<div class='tkt'>
<h2 class='namm'><a class='linka' href='index.film.php?id={$row['id']}'>{$row['title']}</a></h2>
<p class='ab'><span class='tt'>Год:</span> {$row['god']}</p>
<p class='ab'><span class='tt'>Страна:</span> {$row['country']}</p>
<p class='ab'><span class='tt'>Жанр:</span> {$row['janr_text']}</p>
<p class='ab'><span class='tt'>Режиссер:</span> {$row['rezhiser']}</p>
<p class='ab'><span class='tt'>Краткое описание:</span></p>
<div class='infoner'>{$row['mini_description']}</div>
</div>
<div class='pick'>
<a class='link1' href='index.film.php?id={$row['id']}'>{$row['images']}</a>
<div class='ocenka'>
<span class='rati'>IMDb :</span><span class='rat'> {$row['imdb']}</span></br>
<span class='rati'>КиноПоиск :</span><span class='rat'> {$row['kinopoisk']}</span>
</div>
</div>
</div>
";
}
}
else{
echo"
<p class='no_result'>Нет результатов, попробуйте еще!!!</p>
<div class=''><img src='/images/minion.jpg' /></div>
";
};
?>
<?php
if ($page != 1){ $pstr_prev = '<li><a class="pstr-prev" href="index-search_select_dop.php?xar='."$xar".'&tip='."$tip".'&det='."$det".'&page='.($page - 1).'"><</a></li>';}
if ($page != $total) $pstr_next = '<li><a class="pstr-next" href="index-search_select_dop.php?xar='."$xar".'&tip='."$tip".'&det='."$det".'&page='.($page + 1).'">></a></li>';
// Находим две ближайшие станицы с обоих краев, если они есть
if($page - 3 > 0) $page3left = '<li><a href="index-search_select_dop.php?xar='."$xar".'&tip='."$tip".'&det='."$det".'&page='.($page - 3).'">'.($page - 3).'</a></li>';
if($page - 2 > 0) $page2left = '<li><a href="index-search_select_dop.php?xar='."$xar".'&tip='."$tip".'&det='."$det".'&page='.($page - 2).'">'.($page - 2).'</a></li>';
if($page - 1 > 0) $page1left = '<li><a href="index-search_select_dop.php?xar='."$xar".'&tip='."$tip".'&det='."$det".'&page='.($page - 1).'">'.($page - 1).'</a></li>';
if($page + 6 <= $total) $page6right = '<li><a href="index-search_select_dop.php?xar='."$xar".'&tip='."$tip".'&det='."$det".'&page='.($page + 6).'">'.($page + 6).'</a></li>';
if($page + 5 <= $total) $page5right = '<li><a href="index-search_select_dop.php?xar='."$xar".'&tip='."$tip".'&det='."$det".'&page='.($page + 5).'">'.($page + 5).'</a></li>';
if($page + 4 <= $total) $page4right = '<li><a href="index-search_select_dop.php?xar='."$xar".'&tip='."$tip".'&det='."$det".'&page='.($page + 4).'">'.($page + 4).'</a></li>';
if($page + 3 <= $total) $page3right = '<li><a href="index-search_select_dop.php?xar='."$xar".'&tip='."$tip".'&det='."$det".'&page='.($page + 3).'">'.($page + 3).'</a></li>';
if($page + 2 <= $total) $page2right = '<li><a href="index-search_select_dop.php?xar='."$xar".'&tip='."$tip".'&det='."$det".'&page='.($page + 2).'">'.($page + 2).'</a></li>';
if($page + 1 <= $total) $page1right = '<li><a href="index-search_select_dop.php?xar='."$xar".'&tip='."$tip".'&det='."$det".'&page='.($page + 1).'">'.($page + 1).'</a></li>';
if ($page+7 < $total)
{
$strtotal = '<li><p class="nav-point">...</p></li><li><a href="index-search_select_dop.php?xar='."$xar".'&tip='."$tip".'&det='."$det".'&page='.$total.'">'.$total.'</a></li>';
}else
{
$strtotal = "";
}
if ($total > 1)
{
echo '
<div class="pstrnave">
<ul style="margin-left: -11px;">
';
echo $pstr_prev.$page3left.$page2left.$page1left."<li><a class='pstr-active' href='index-search_select_dop.php?xar='.$xar.'&tip='.$tip.'&det='.$det.'&page=".$page."'>".$page."</a></li>".$page1right.$page2right.$page3right.$page4right.$page5right.$page6right.$strtotal.$pstr_next;
echo '
</ul>
</div>
';
}
?>
</div>
оригинал - https://toster.ru/q/331671
0
if (strpos($route, ':') !== false) {
$route = str_replace(':any', '([^/]+)', str_replace(':num', '([0-9]+)', str_replace(':all', '(.+)', $route)));
}
Очередная обезьяна села высерать свои мысли на PHP ... Уже много говорили тут о mpak и его "cms", вот вам еще одно "чудо": https://github.com/wolfcms/wolfcms
0
public function getOrdersByMonth($year)
{
$data = array();
$overallquanities = self::$DBH->query('SELECT SUM(quanity) as quanity, DATE_FORMAT(timestamp,\'%m\') as mdata,phone,comment FROM statistics WHERE DATE_FORMAT(timestamp,\'%Y\')=\'' . $year . '\' AND phone!=(\'test\') AND phone!=(\'тест\') AND comment!=(\'test\') AND comment!=(\'тест\') GROUP BY DATE_FORMAT(timestamp,\'%Y %m\')')->fetchAll(PDO::FETCH_ASSOC);
$overallsumms = self::$DBH->query('SELECT SUM(cost) as cost, DATE_FORMAT(timestamp,\'%Y %m %d\') as mdata FROM statistics WHERE DATE_FORMAT(timestamp,\'%Y\')=\'' . $year . '\' AND phone!=(\'test\') AND phone!=(\'тест\') AND comment!=(\'test\') AND comment!=(\'тест\') GROUP BY DATE_FORMAT(timestamp,\'%Y %m\')')->fetchAll(PDO::FETCH_ASSOC);
$overallorders = self::$DBH->query('SELECT COUNT(DISTINCT currcount) as count, DATE_FORMAT(timestamp,\'%Y %m %d\') as mdata FROM statistics WHERE DATE_FORMAT(timestamp,\'%Y\')=\'' . $year . '\' AND phone!=(\'test\') AND phone!=(\'тест\') AND comment!=(\'test\') AND comment!=(\'тест\') GROUP BY DATE_FORMAT(timestamp,\'%Y %m\')')->fetchAll(PDO::FETCH_ASSOC);
$overallcomplex = self::$DBH->query('SELECT COUNT(*) as count, DATE_FORMAT(timestamp,\'%Y %m %d\') as mdata FROM statistics WHERE DATE_FORMAT(timestamp,\'%Y\')=\'' . $year . '\' AND suborder=2 AND phone!=(\'test\') AND phone!=(\'тест\') AND comment!=(\'test\') AND comment!=(\'тест\') GROUP BY DATE_FORMAT(timestamp,\'%Y %m\')')->fetchAll(PDO::FETCH_ASSOC);
$overall_glnz = self::$DBH->query('SELECT SUM(quanity) as quanity,SUM(cost) as cost, DATE_FORMAT(timestamp,\'%Y %m %d\') as mdata FROM statistics WHERE DATE_FORMAT(timestamp,\'%Y\')=\'' . $year . '\' AND paper=\'glnz\' AND phone!=(\'test\') AND phone!=(\'тест\') AND comment!=(\'test\') AND comment!=(\'тест\') GROUP BY DATE_FORMAT(timestamp,\'%Y %m\')')->fetchAll(PDO::FETCH_ASSOC);
//TODO: $overall_mat сделать просто рассчет вычитание из общего количества
$overall_mat = self::$DBH->query('SELECT SUM(quanity) as quanity,SUM(cost) as cost, DATE_FORMAT(timestamp,\'%Y %m %d\') as mdata FROM statistics WHERE DATE_FORMAT(timestamp,\'%Y\')=\'' . $year . '\' AND paper=\'mat\' AND phone!=(\'test\') AND phone!=(\'тест\') AND comment!=(\'test\') AND comment!=(\'тест\') GROUP BY DATE_FORMAT(timestamp,\'%Y %m\')')->fetchAll(PDO::FETCH_ASSOC);
$overall_autocor = self::$DBH->query('SELECT SUM(quanity) as quanity,SUM(cost) as cost, DATE_FORMAT(timestamp,\'%Y %m %d\') as mdata FROM statistics WHERE DATE_FORMAT(timestamp,\'%Y\')=\'' . $year . '\' AND autocor=1 AND phone!=(\'test\') AND phone!=(\'тест\') AND comment!=(\'test\') AND comment!=(\'тест\') GROUP BY DATE_FORMAT(timestamp,\'%Y %m\')')->fetchAll(PDO::FETCH_ASSOC);
$formats = self::$DBH->query('SELECT DATE_FORMAT(timestamp,\'%m\') as mdata, format, SUM(quanity) as quanity,SUM(cost) as cost FROM statistics WHERE DATE_FORMAT(timestamp,\'%Y\')=\'' . $year . '\' AND phone!=(\'test\') AND phone!=(\'тест\') AND comment!=(\'test\') AND comment!=(\'тест\') GROUP BY DATE_FORMAT(timestamp,\'%Y %m\'),format')->fetchAll(PDO::FETCH_GROUP | PDO::FETCH_ASSOC);
//************* Собираем итоги **************//
$whereOption = 'AND phone!=(\'test\') AND phone!=(\'тест\') AND comment!=(\'test\') AND comment!=(\'тест\') AND comment NOT LIKE \'%test%\' AND comment NOT LIKE \'%тест%\'';
$totalOrders = self::$DBH->query('SELECT COUNT(DISTINCT currcount) as totalOrders FROM statistics WHERE DATE_FORMAT(timestamp,\'%Y\') =\''.$year.'\' '.$whereOption)->fetchAll(PDO::FETCH_ASSOC);
$totalSum = self::$DBH->query('SELECT SUM(cost) as totalSum FROM statistics WHERE DATE_FORMAT(timestamp,\'%Y\') =\''.$year.'\' '.$whereOption)->fetchAll(PDO::FETCH_ASSOC);
$totalGLNZ = self::$DBH->query('SELECT SUM(quanity) as paperCount, SUM(cost) as paperCost FROM statistics WHERE DATE_FORMAT(timestamp,\'%Y\') = \''.$year.'\' AND paper=\'glnz\' '.$whereOption)->fetchAll(PDO::FETCH_ASSOC);
$totalMAT = self::$DBH->query('SELECT SUM(quanity) as paperCount, SUM(cost) as paperCost FROM statistics WHERE DATE_FORMAT(timestamp,\'%Y\') = \''.$year.'\' AND paper=\'mat\' '.$whereOption)->fetchAll(PDO::FETCH_ASSOC);
$totalSubsCount = self::$DBH->query('SELECT COUNT(suborder) as totalSubsCount FROM statistics WHERE DATE_FORMAT(timestamp,\'%Y\') =\''.$year.'\' '.$whereOption)->fetchAll(PDO::FETCH_ASSOC);
$totalPhotos = self::$DBH->query('SELECT SUM(quanity) as totalPhotos FROM statistics WHERE DATE_FORMAT(timestamp,\'%Y\') =\''.$year.'\' '.$whereOption)->fetchAll(PDO::FETCH_ASSOC);
//******************************************//
// $this->Logging(self::$DBH->query('SELECT quanity, DATE_FORMAT(timestamp,\'%m\') as mdata,phone,comment FROM statistics WHERE DATE_FORMAT(timestamp,\'%Y\')=\'' . $year . '\'')->fetchAll(PDO::FETCH_ASSOC));
/*$this->Logging($data);*/
return $data;
}
Выводим статистику и итоги
0
$php1 = "<";
$php2= "?php";
$php3 = " require_once $";
$php4 = "_SERVER['DOCUMENT_ROOT'].\"/gen/admin/Debugger.php\"; ?";
$php5 = "";
$php6 = ">\r\n";
$php_debuger = $php1 .$php2 .$php3 .$php4 .$php5 .$php6;
Даже трудно предположить нахрен так.
0
$fname=rand(0,10000)."_".$fname;
while (is_file($upload_path.$fname)) {
$fname=rand(0,10000)."_".$filename;
}
Если вдруг пользователь загрузил файл с одним и тем же именем, то надо ему приделать префикс. НО! Вдруг такой префикс уже был сгенерирован, ГПСЧ, тервер же! Сразу видно автор из ВУЗа.
0
function setLastHandshake ($carID) {
$HsList = json_decode(file_get_contents('carconnection.txt'), 1);
if ($HsList == "null" || $HsList == null) {
$HsList = json_decode("[]");
}
$carCount = count($HsList);
$i = 0;
foreach ($HsList as &$row) {
if ($row['car'] == $carID) {
$row['lastHS'] = (string)time();
break;
}
else {
$i++;
}
if ($i == $carCount) {
$HsList[] = array('car' => (string)$carID, 'lastHS' => (string)time());
}
}
if ($HsList == "null" || $HsList == null) {
return -1;
}
$f = fopen('carconnection.txt', 'w');
fwrite($f, json_encode($HsList));
}
+2
<input type="hidden" name="lang" value="<?= LANG ?>"/>
<input type="hidden" name="ID" value=<?= $arResult["ID"] ?>/>
<input type="hidden" name="LOGIN" value=<?= $arResult["arUser"]["LOGIN"] ?>/>
Кусок формы редактирования профиля.. Отвлечемся от горячо любимой CMS и сконцентрируемся на сути...
Кодер так спешил, что решил просто type="text" превратить в хиддены. Бог с ним что это дает юзеру намек на то как сменить логин.
Но он забыл кавычки. ID проходит через IntVal и это не заметно. А вот к логину при каждом сохранении дописывается "/", юзера не выкидывает. А вот в следующий раз он должен угадать сколько слэшей добавить к логину. Да и логин запретили менять наверное не просто так, а потому что при регистрации туда прописывается мыло, а вот при апдейте юзера уже не трогают это...