if(file_exists("modules/test.php"))
$exists=1;
else
$exists=0;
if($exists!=1) {
echo("Access is refused. Hi, hazker!!!");
exit;
}
php.как организовать структуру типа index.php?id=page1 и т.д
Нужен совет или подсказка, где прочитать, или как организовать следующую структуру сайта на php.
На многих сайтахна пхп, адрес страницы имеет вид index.php?id=чему-либо.
Как это организовывается. подскажите пожалуйста.
Заранее спасибо за ответ.
Код:
switch (@$_GET['id']) {
case 'page1': $inc_page = 'page1.php'; break;
case 'page2': $inc_page = 'page2.php'; break;
...
default: $inc_page = false;
}
if ($inc_page) require_once($inc_page);
case 'page1': $inc_page = 'page1.php'; break;
case 'page2': $inc_page = 'page2.php'; break;
...
default: $inc_page = false;
}
if ($inc_page) require_once($inc_page);
Главное, нельзя делать без проверки, т.е.
Код:
require_once(@$_GET['id']);
Почиать можно в мануале PHP
http://php.net/include
http://php.net/include_once
http://php.net/require
http://php.net/require_once
Спасибо.А можно подробней про проверку? На что?
Он имеет ввиду не подставлять напрямую переменную, а делать через switch дабы оградить себя от РНР-инклюдинга
Код:
require_once(@$_GET['id']);
то в эту id можно будет запихнуть, что угодно, например http://www.site.ru/index.php?id=любой_файл
Вообще в этой же ветке форума, есть FAQ по безопасности
http://forum.codenet.ru/showthread.php?t=21825
Код:
и еще вот такая проверка:
Код:
if (!defined('SAFETY')) { die('Invalid context'); }
if (SAFETY=='safety')
{
code....
}
else
{
echo "хакер выпей ЙАду";
}
if (SAFETY=='safety')
{
code....
}
else
{
echo "хакер выпей ЙАду";
}
Последнее я не совсем понял как реализовывается, поясните пожалуйста. Что это за переменная и как и что она может содержать.
Какая именно?
не нужно ничего выдумывать - все просто:
Код:
<?
$page = intval($_GET['page']); //Берем ID страницы из адресной строки
switch($page) //Выбираем соответствующий файл в зависимости от значения переменной
{
default:
case 0: $page_name = 'page0.php'; break;
case 1: $page_name = 'page1.php'; break;
case 2: $page_name = 'page2.php'; break;
case 3: $page_name = 'page3.php'; break;
}
include_once($page_name); //Подключаем страницу
/* ВСЕ! НИЧЕГО БОЛЕЕ НЕ ТРЕБУЕТСЯ */
?>
$page = intval($_GET['page']); //Берем ID страницы из адресной строки
switch($page) //Выбираем соответствующий файл в зависимости от значения переменной
{
default:
case 0: $page_name = 'page0.php'; break;
case 1: $page_name = 'page1.php'; break;
case 2: $page_name = 'page2.php'; break;
case 3: $page_name = 'page3.php'; break;
}
include_once($page_name); //Подключаем страницу
/* ВСЕ! НИЧЕГО БОЛЕЕ НЕ ТРЕБУЕТСЯ */
?>
а переменная Safety, что она содержит? Это из темы фака по безопасности.
т.е. в index.php ты определяешь константу SAFETY, а в остальный модулях проверяешь ее наличие. И если этот модуль был запущен не с index.php и соответсвенно, SAFETY не определен, то страница ругается фразой "хакер выпей йаду".
ЧТо быстрее работает include() или fopen() ?
Те что лучше
Код:
case '1': $inc_page = 'page1.php'; break;
ЧТо быстрее работает include() или fopen() ?
Те что лучше
Код:
case '1': $inc_page = 'page1.php'; break;
Что вкуснее небо или четверг?
Уважаемый - читаем мануал чтобы понять в чем разница между функциями...
Да нет.. Вы меня не поняли.
Ну так просвятите
Не мешайте котлеты с мухами: fopen() всего-лишь открывает некий файл для дальнейшей работы с ним и возвращает handler.