[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Не правильный ввод ссылки в адресной строке
Alexey_2011
Доброе время суток всем, подскажите мне пожалуйста как сделать чтоб при не правильном вводе ссылки на скрипт сайт не выдовал ошибку а оставался на той же старице где и был.

Пример ссылки

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 и перенаправить на него. Но к чему такие сложности? Простой пользователь никогда вручную значения параметров менять не станет. Кидайте такого человека сразу на главную - это будет проще в реализации.

Спустя 9 минут, 6 секунд (1.10.2011 - 07:15) imbalance_hero написал(а):
либо проверяй на содержание, если ты четко знаешь, какие параметры ты передаёшь, либо include в том случае, когда такой файл существует: file_exists .

Спустя 6 минут, 7 секунд (1.10.2011 - 07:21) Alexey_2011 написал(а):
ясна спасибо, почитаем про эти операторы
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.