Пример ссылки
http://test1.ru/index.php?page=communication&action=forum
в папке communication существует php скрипт forum и он его откроет, но если ввести в адресную строку браузера ложную ссылку, например forum2
http://test1.ru/index.php?page=communication&action=forum2
то выдаст ошибку
Warning: include(scripts/communication/forum2.php) [function.include]: failed to open stream: No such file or directory in Z:\home\test1.ru\www\index.php on line 12
Warning: include() [function.include]: Failed opening 'scripts/communication/forum2.php' for inclusion (include_path='.;/usr/local/php5/PEAR') in Z:\home\test1.ru\www\index.php on line 12
так как php скрипта forum2 не существует, подскажите мне пожалуйста как сделать так чтобы ошибка не выводилась при ложном запросе а оставалась на той же странице где и была в данном случае на
http://test1.ru/index.php?page=communication&action=forum
Спустя 50 минут, 48 секунд (1.10.2011 - 07:06) Белый Тигр написал(а):
Здесь всё просто - перед подключением файла проверяйте его наличие с помощью file_exits(). А ещё лучше, набор получаемых в action значений ограничить оператором switch, дабы точно избежать атак связанных с подключением сторонних файлов. Если у вас в switch будет написано что в action может быть только forum, news и pages, а при других значениях производить редирект на главную страницу, то что не вводи - ошибки не получится.
На счёт редиректа на прошлую страницу. Разве что вы будете всегда последний посещённый URL хранить в сессии. Тогда, в случае если в action лежит недопустимое значение, можно достать последний URL и перенаправить на него. Но к чему такие сложности? Простой пользователь никогда вручную значения параметров менять не станет. Кидайте такого человека сразу на главную - это будет проще в реализации.
На счёт редиректа на прошлую страницу. Разве что вы будете всегда последний посещённый URL хранить в сессии. Тогда, в случае если в action лежит недопустимое значение, можно достать последний URL и перенаправить на него. Но к чему такие сложности? Простой пользователь никогда вручную значения параметров менять не станет. Кидайте такого человека сразу на главную - это будет проще в реализации.
Спустя 9 минут, 6 секунд (1.10.2011 - 07:15) imbalance_hero написал(а):
либо проверяй на содержание, если ты четко знаешь, какие параметры ты передаёшь, либо include в том случае, когда такой файл существует: file_exists .
Спустя 6 минут, 7 секунд (1.10.2011 - 07:21) Alexey_2011 написал(а):
ясна спасибо, почитаем про эти операторы