Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Общие вопросы > запрет вызова модуля


Автор: Ripper 7.8.2005, 17:57
Есть страничка которая подключает модули (require_once(somefile.php)). А как сделать чтобы человек не мог вызвать скрипт самостоятельно через строку веб-адреса? Это гдето в PHP-Nuke было вроде... HTTP_REFFER проверяют чтоли.. тока у меня с регулярками плохо. подскажите пожалуста.. допустим имя главной страницы http://mysite.ru/index.php
и ещё вопрос:
Чем отличаются include, от require? Скока не использую эффект один и тот же.. или я не замечал

Автор: Irokez 7.8.2005, 18:05
Цитата(Ripper @ 7.8.2005, 17:57)
А как сделать чтобы человек не мог вызвать скрипт самостоятельно через строку веб-адреса

вариантов море:
1) через .htaccess закрыь доступ в папке
2) подгружаемым модулям дать определенное расширение и зачем закрыть доступ к файлам с таким расшрением
3) поставить права на чтение только для срипта

Цитата(Ripper @ 7.8.2005, 17:57)
Чем отличаются include, от require? Скока не использую эффект один и тот же.. или я не замечал

инклуд инклудит, реквайр требует smile главная разница в том что если файл не найден - инклуд выведет предупреждение, скрипт будет работать дальше, а реквайр выдаст фатальную ошибку и прекратит выполнение скрипта, т.е. через реквайр надо подключать особенно важные модули, без которых скрипт не будет функционировать.. еще различие также состоит в том что инклуд может быть в какой-либо контрольной структуре, например - if; require же будет подгружать файл в любом случае, как только пхп дойдет до строки содержащей require
Добавлено @ 18:05
а вообще в мануале - это все хорошо объясняется..

Автор: Mal Hack 7.8.2005, 18:16
Цитата(Ripper @ 7.8.2005, 18:57)
А как сделать чтобы человек не мог вызвать скрипт самостоятельно через строку веб-адреса?

В главном файле пишешь:

Код

define( "ROOT" , TRUE );

в модуле в самом начале:
Код

if( ! defined( "ROOT" ) )
 {  exit( "Fatal Error." );  }


Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)