Хочу защитить include от прямого вызова, при этом чтобы выводилась моя страница ошибки (error/403.php). Не знаю как это осуществить?
В инете нащел вариант, но не знаю как довести до ума. Так как в скриптах не силен.
<?php
if ($_SERVER['SCRIPT_FILENAME'] == '<path to php include file>') {
header('HTTP/1.0 403 Forbidden');
exit('Forbidden');
}
?>
Либо такой вариант:
<?php
if(!defined('MyConst')){die('Direct access not premitted');}
?>
<?php
define('MyConst', TRUE);
?>
Может кто подскажет?
Спустя 7 минут, 49 секунд (3.04.2012 - 20:03) johniek_comp написал(а):
я делаю так, в index.php создаю константу
дальше у меня идет __autoload, и подключаю файлы, в каждом файле пишу в начале
если файл включить напрямую, то Нет доступа, а если через index.php подключить то все норм.
ну и надо не include а include_once брать
// создаем константу для того что бы файлы ядра нельзя было вызвать напрямую
define(MEX, '');
дальше у меня идет __autoload, и подключаю файлы, в каждом файле пишу в начале
defined('MEX') or die("Нет доступа");
если файл включить напрямую, то Нет доступа, а если через index.php подключить то все норм.
ну и надо не include а include_once брать
Спустя 11 секунд (3.04.2012 - 20:03) Игорь_Vasinsky написал(а):
если у тя точка входа - один файл (index.php) или ты, например везде конфиг файл вешаешь (config.php) то как вариант объявить в них константу, и а подключаемом файле проверять - объявлена ли она, в противном случае выводить 404 заголовок
Спустя 14 часов, 58 минут, 55 секунд (4.04.2012 - 11:02) deeand7 написал(а):
Не получается. Вот что у меня:
В htaccess файл 404 прописан, но страница с ошибкой так и не показывается.
В чем может быть причина?
В include :
<?php if(!defined('MyConst')) header('Location: http://localhost/rezinovy_sajt/error/404.php'); ?>
В файле index.php :
<?php define('MyConst', TRUE);?>
В htaccess файл 404 прописан, но страница с ошибкой так и не показывается.
В чем может быть причина?
Спустя 15 минут, 7 секунд (4.04.2012 - 11:17) Nikitian написал(а):
Все инклюды в отдельную папочку с .htaccess
И никаких танцев с бубнами.
Order allow,deny
Deny from all
И никаких танцев с бубнами.
Спустя 2 часа, 43 минуты, 21 секунда (4.04.2012 - 14:01) deeand7 написал(а):
Спасибо всем особенно, Nikitian, за супер-мега простое решение! Заработало!