- 1
eval (' ?' . '>' . $tpl->result['main'] . '<' . '?php ');
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
Всего: 32
+163
eval (' ?' . '>' . $tpl->result['main'] . '<' . '?php ');
> Итак нередко возникает необходимость вставки на свой сайт PHP скрипт стороннего производителя. Однако по умолчанию данная возможность отключена в скрипте. Поэтому предлагаем вам небольшой хак, позволяющий использовать любой PHP код в шаблонах
>
> Откройте файл index.php найдите строчку:
> echo $tpl->result['main'];
>
> и замените ее на
> eval (' ?' . '>' . $tpl->result['main'] . '<' . '?php ');
>
> Все, вы можете использовать сторонние скрипты на вашем сайте. Данных хак не рекомендуется к использованию на версиях ниже 3.0
"... небольшой хак ..."
Ага, небольшой. Нету просто слов... DLE.
"Данных хак не рекомендуется к использованию на версиях ниже 3.0"
Я бы вообще его не рекомендовал бы даже.
http://dle-news.ru/tips/33-ispolzovanie_ljubykh_php_vstavok_v_shabl onakh.html
P.S.: знаю что 2006, но все равно можно было и получше написать.
+155
<?php
/**
* Get category tree.
*
* @param db $db
* @return array
*/
function getCategoryTree ($db) {
$query = $db->query('SELECT * FROM dle_category ORDER BY posi');
if ($query->num_rows <= 0) {
return FALSE;
}
$categories = $query->fetch_all(MYSQLI_ASSOC);
$tree = array();
foreach ($categories as $cat) {
if ($cat['parentid'] == '0') {
$tree[$cat['id']] = $cat;
}
else {
$tree[$cat['parentid']]['subcategories'][] = $cat;
}
}
return $tree;
}
/**
* Display categories.
* Sorry for my french 'echo'.
*
* @param array $category
*/
function displayCategory ($category) {
$html = '';
foreach ($category as $cat) {
$html .= '<li class="lonely "><a href="/">' . $cat['name'] . '</a>';
if ($cat['subcategories']) {
$html .= '<span class="accordion"></span><ul>';
$html .= displayCategory ($cat['subcategories']);
$html .= '</ul>';
}
$html .= '</li>';
}
return $html;
}
// Getting categories
$categories = getCategoryTree($db);
if ($categories) {
echo displayCategory ($categories);
}
else {
echo '<li>Нету категорий</li>';
}
Мой говно модуль для DLE для отображения дерева категорий в меню.
Почему DLE разработчики не могли это из коробки сделать? И почему там куча говнокода внутри? (на Англ. комментарии потому что привык)
+155
<?php
$data = file_get_contents("/path/to/photo.jpg"); // Read the file's contents
$name = 'myphoto.jpg';
force_download($name, $data);
Я знаю конечно что это не говнокод, но последствия будут ужасными если не передать сразу же в функцию данные (т.к. PHP будет копировать содержимое дважды), представьте себе файл в 2МБ и много запросов, сервер капут в два раза быстрее.
- https://ellislab.com/codeigniter/user-guide/helpers/download_helper.html
+155
// Отладочная информация
if(1)
{
print "<!--\r\n";
$time_end = microtime(true);
$exec_time = $time_end-$time_start;
if(function_exists('memory_get_peak_usage'))
print "memory peak usage: ".memory_get_peak_usage()." bytes\r\n";
print "page generation time: ".$exec_time." seconds\r\n";
print "-->";
}
Simpla CMS, красавцы! :D
+151
// /vendor/composer/autoload_real.php
// Строка 18
if (NULL !== self::$loader) {
// ...
Composer видимо такой же мудрый как и Йода...
( http://en.wikipedia.org/wiki/Yoda_conditions )
+153
/**
* Компиляция плейсхолдера
*/
private function sql_compile_placeholder($tmpl)
{
$compiled = array();
$p = 0; // текущая позиция в строке
$i = 0; // счетчик placeholder-ов
$has_named = false;
while(false !== ($start = $p = strpos($tmpl, "?", $p)))
{
// Определяем тип placeholder-а.
switch ($c = substr($tmpl, ++$p, 1))
{
case '%': case '@': case '#':
$type = $c; ++$p; break;
default:
$type = ''; break;
}
// Проверяем, именованный ли это placeholder: "?keyname"
if (preg_match('/^((?:[^\s[:punct:]]|_)+)/', substr($tmpl, $p), $pock))
{
$key = $pock[1];
if ($type != '#')
$has_named = true;
$p += strlen($key);
}
else
{
$key = $i;
if ($type != '#')
$i++;
}
// Сохранить запись о placeholder-е.
$compiled[] = array($key, $type, $start, $p - $start);
}
return array($compiled, $tmpl, $has_named);
}
/**
* Выполнение плейсхолдера
*/
private function sql_placeholder_ex($tmpl, $args, &$errormsg)
{
// Запрос уже разобран?.. Если нет, разбираем.
if (is_array($tmpl))
$compiled = $tmpl;
else
$compiled = $this->sql_compile_placeholder($tmpl);
list ($compiled, $tmpl, $has_named) = $compiled;
// Если есть хотя бы один именованный placeholder, используем
// первый аргумент в качестве ассоциативного массива.
if ($has_named)
$args = @$args[0];
// Выполняем все замены в цикле.
$p = 0; // текущее положение в строке
$out = ''; // результирующая строка
$error = false; // были ошибки?
foreach ($compiled as $num=>$e)
{
/* .. тут куча кода .. */
}
$out .= substr($tmpl, $p);
// Если возникла ошибка, переделываем результирующую строку
// в сообщение об ошибке (расставляем диагностические строки
// вместо ошибочных placeholder-ов).
if ($error)
{
$out = '';
$p = 0; // текущая позиция
foreach ($compiled as $num=>$e)
{
list ($key, $type, $start, $length) = $e;
$out .= substr($tmpl, $p, $start - $p);
$p = $start + $length;
if (isset($e['error']))
{
$out .= $e['error'];
}
else
{
$out .= substr($tmpl, $start, $length);
}
}
// Последняя часть строки.
$out .= substr($tmpl, $p);
$errormsg = $out;
return false;
}
else
{
$errormsg = false;
return $out;
}
}
Вот такой велосипед у симплы, типа о PDO не слышали?
Файл api/database.php, SimplaCMS.
+152
<?php
class Config {
/* ... */
public function __construct ()
{
// Читаем настройки из дефолтного файла
$ini = parse_ini_file(dirname(dirname(__FILE__)).'/'.$this->config_file);
// Записываем настройку как переменную класса
foreach($ini as $var=>$value)
$this->vars[$var] = $value;
/* ... */
Взято из файла api/config.php из Simpla CMS.
Нельзя было $this->vars = parse_ini_file(dirname(dirname(__FILE__) ).'/'.$this->config_file); написать что ли?
+153
// строка 139
$parts = explode('@',self::$callbacks[$pos]);
$file = strtolower('app/controllers/'.$parts[0].'.php');
//try to load and instantiate model
if(file_exists($file)){
require $file;
}
//grab all parts based on a / separator
$parts = explode('/',self::$callbacks[$pos]);
//collect the last index of the array
$last = end($parts);
//grab the controller name and method call
$segments = explode('@',$last);
//instanitate controller
$controller = new $segments[0]();
$params = count($matched);
//call method and pass any extra parameters to the method
switch ($params) {
case '0':
$controller->$segments[1]();
break;
case '1':
$controller->$segments[1]($matched[0]);
break;
case '2':
$controller->$segments[1]($matched[0],$matched[1]);
break;
case '3':
$controller->$segments[1]($matched[0],$matched[1],$matched[2]);
break;
case '4':
$controller->$segments[1]($matched[0],$matched[1],$matched[2],$matched[3]);
break;
case '5':
$controller->$segments[1]($matched[0],$matched[1],$matched[2],$matched[3],$matched[4]);
break;
case '6':
$controller->$segments[1]($matched[0],$matched[1],$matched[2],$matched[3],$matched[4],$matched[5]);
break;
case '7':
$controller->$segments[1]($matched[0],$matched[1],$matched[2],$matched[3],$matched[4],$matched[5],$matched[6]);
break;
case '8':
$controller->$segments[1]($matched[0],$matched[1],$matched[2],$matched[3],$matched[4],$matched[5],$matched[6],$matched[7]);
break;
case '9':
$controller->$segments[1]($matched[0],$matched[1],$matched[2],$matched[3],$matched[4],$matched[5],$matched[6],$matched[7],$matched[8]);
break;
case '10':
$controller->$segments[1]($matched[0],$matched[1],$matched[2],$matched[3],$matched[4],$matched[5],$matched[6],$matched[7],$matched[8],$matched[9]);
break;
}
// ...
Вот так SimpleMVCFramework передает аргументы контролеру *facepalm*
−413
// CCTexture2D.m
- (id) initWithString:(NSString*)string dimensions:(CGSize)dimensions alignment:(CCTextAlignment)alignment vertAlignment:(CCVerticalAlignment)vertAlignment lineBreakMode:(CCLineBreakMode)lineBreakMode font:(id) uifont
{
/* ... */
[self releaseData:data];
return self;
}
/* ... */
- (void) releaseData:(void*)data
{
//Free data
free(data);
}
Освобождение памяти, взято из Cocos2d 1.x
+158
// Выше PHP + HTML
$redirect = "
<script language='JavaScript'>
window.location.href = 'http://www.p-ride.ru'
</script>
";
// ...
$query1 = "SELECT main_id FROM email WHERE email = '$email'";
$idquery = mysql_query($query1);
$id = mysql_fetch_row($idquery);
// ...
if(in_array($id[0], $idarray2))
{
echo $starthtml;
echo $redirect;
// ^ тут
echo "<p>Такой почтовый адрей уже используется, ведите пожалуйста другой адрес или восстановите пароль. Вы сейчас будете перенаправлены на главную страницу, если этого не произошло, кликните <a href='http://p-ride.ru'>сюда</a>.</p>";
echo $endhtml;
}
Редирект аля ПоХаПэ + отображение сообщение которое не будет показано.