require - проверка на ошибку

fixxxer

К.О.
Партнер клуба
?var=:///etc/passwd%00%00%00%00%00%00%00%00%00%00...%00%00

либо слэшами доpadить - смотря какая ось
 

Эдди

Новичок
Автор оригинала: fixxxer
?var=:///etc/passwd%00%00%00%00%00%00%00%00%00%00...%00%00

либо слэшами доpadить - смотря какая ось
Штирлиц шел по коридору.

То есть, информация к размышлению...

Твой совет будет?
 

dimagolov

Новичок
получать в параметре индекс в массиве подключаемых файлов и брать по нему имя из массива
 

Splurov

Новичок
Эдди
PHP:
$pages = array('news', 'about', 'contacts');
if (array_key_exists('page', $_GET) && in_array($_GET['page'], $pages)) {
  include_once 'file.' . $_GET['page'] . '.inc.php';
}
 

Эдди

Новичок
Автор оригинала: dimagolov
получать в параметре индекс в массиве подключаемых файлов и брать по нему имя из массива
Ну да. Явно безопаснее. Спасибо.

А как лучше. Передавать индекс в переменной через адресную строку или разбирать url?
Или это только эстетика?

-~{}~ 18.05.10 18:02:

Что-то я плохо вас поблагодарил всех.

Реально спасибо. Не допер бы сам.
 

Фанат

oncle terrible
Команда форума
1. отрезать имя файла от всего остального - ифыутфьу()
2. сделать лицо попроще и использовать таки file_exists/is_readable

а из масссива брать скучно. с каждым модулем индекс править?
хотя для хомяка, конечно сойдет.
хотя для хомяка без мод рерайта нафиг вообще не нужно инклюдить из адресной строки.
куда проще СРАЗУ в ссылке писать page.php
 

Фанат

oncle terrible
Команда форума
ну конечно.
в твоем случае все было самое оно. и ошибки реквайра ловить, и квери стринг инклюдить.
и индекс, индекс конечно же. обязательно в виде <html><?include $module?></html>.
самое оно
 

Эдди

Новичок
Автор оригинала: *****
ну конечно.
в твоем случае все было самое оно. и ошибки реквайра ловить, и квери стринг инклюдить.
и индекс, индекс конечно же. обязательно в виде <html><?include $module?></html>.
самое оно
Угу. Перехожу на пуристский html
 

Фанат

oncle terrible
Команда форума
Переходить никуда не надо.
А вот перестать тупить очень желательно.
 

Фанат

oncle terrible
Команда форума
Динамически - это другое дело.
Если он у нас уже есть для каких-то других целей, то конечно лучше брать из него.

-~{}~ 19.05.10 07:42:

Эдди
Скажи, вот что ты имел в виду под "перехзожу на пуристский хтмл" и как ты понял мое замечание насчет индекса?
 

Эдди

Новичок
Автор оригинала: *****
Динамически - это другое дело.
Если он у нас уже есть для каких-то других целей, то конечно лучше брать из него.

-~{}~ 19.05.10 07:42:

Эдди
Скажи, вот что ты имел в виду под "перехзожу на пуристский хтмл" и как ты понял мое замечание насчет индекса?
1. Ну раз я такой глупый, то только html мне и светит.:)
2. Ну так при добавлении, удалении, изменении модулей массив править.

А в чем опасность, указанная выше ?var=:///etc/passwd%00%00%00%00%00%00%00%00%00%00...%00%00,
если я полный путь пишу. К примеру
$_SERVER['DOCUMENT_ROOT'].'/abcd/myfile'.$_REQUEST['file'].'.inc.php'

При подстановке любых неверных значений файл просто не будет найден. Ведь так?
 

Вурдалак

Продвинутый новичок
Автор оригинала: Эдди
При подстановке любых неверных значений файл просто не будет найден. Ведь так?
— не, не так. Нулевой байт (который тут закодирован как %00) просто отсечёт остальную часть пути. Допустим, у тебя есть файл «file.php»:
PHP:
include 'file.php';
Теперь попробуй так:
PHP:
include 'file.php' . "\0" . 'Some shit';
Работает?
 

Фанат

oncle terrible
Команда форума
HTML светит всем - и умным, и глупым, и кому угодно.
потому что мы веб-сайты делаем, а браузер РНР не понимает. Только хтмл.
Речь была не об этом.
а о том, что у тебя все эти инклюды из гета только для того, тобы их включать в готовый "дизайн", который в индексе и нарисован. Правильно?
 

Эдди

Новичок
Нет. Неправильно. Весь дизайн и все программы сделаны мной ручками.

Просто порой несколько разных контентов сильно похожи, и делать отдельную шапку, левое обрамление, правое и пр..., когда они одинаковы, не имеет смысла.
Вот и подгружаю к шаблону (если его можно так назвать) разные файлы.

Это не глобально происходит. В некоторых случаях, где это удобно.
Иными словами, стремлюсь к минимизации одинаковых кусков php и html.
 

Фанат

oncle terrible
Команда форума
А если тебе понадобится выводить разный <title> для каждой страницы? В зависимости от того, какой модуль и что он выводит.

Никто тебе не говорит, что ты не сам рисовал. И никто не оспаривает необходимость убирать дублирование кода.
Речь о методах, которыми ты это делаешь.
Вынести шапку в инклюд, и подключать внутри модуля ничем не хуже, чем писать специальную программу по запуску модулей, беря на себя функции, с которыми прекрасно справляется веб-сервер.
В итоге исходя из непраильного понимания правильных принципов, ты придумал себе кучу неприятностей.
 

Эдди

Новичок
Я именно так и делаю, как ты говоришь.
И шапка, и левое, и правое поле, и нижнее вынесены вовне.

А инклудю контент только там, где и тайтл, и все остальное совпадает.
 
Сверху