Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Закрытие дыр в генерации ссылок

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
Exponat
Отправлено: 18 Декабря, 2013 - 11:25:05
Post Id



Частый гость


Покинул форум
Сообщений всего: 196
Дата рег-ции: Янв. 2013  


Помог: 0 раз(а)




Здравствуйте.
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. $action = $_GET['action'];
  3. if ($action=="index" or !isset($action))
  4. {
  5. include "page/index.php";
  6. }
  7. if (isset($action) and $action != "index")
  8. {
  9. $page = "page/".$action.".php";
  10. if (file_exists($page))
  11. {        
  12. include "page/".addslashes($action).".php";
  13. }
  14. else
  15. {
  16. echo "Извините, но данной страницы не найдено.";
  17. }
  18. }
  19. ?>

Нормальная эталонная ссылка у меня такого вида:[url] http://www.domain.ru/?action=news_inf&id=27990[/url]
Если ввести [url] http://www.domain.ru/?action[/url] сработает условие безопасности и выдаст Извините, но данной страницы не найдено.
Но если ссылку написать такими адресами: [url] http://www.domain.ru/?action=news_inf&id[/url]
[url] http://www.domain.ru/?action=news_inf&[/url]
[url] http://www.domain.ru/?action=news_[/url]
[url]http://www[dot]domain[dot]ru/?action_что нибудь[/url]
Оно будет выводить пустой шаблон страницы news_inf. Как мне в коде выше закрыть эти дыры? То есть из такой ссылки [url] http://www.domain.ru/?action=news_inf&id=27990[/url] реально правильных варианта два: это естественно [url] http://www.domain.ru/?action=news_inf&id=27990[/url] и [url] http://www.domain.ru[/url]. Как мне при других вариантах выводить Извините, но данной страницы не найдено.?
 
 Top
caballero
Отправлено: 18 Декабря, 2013 - 12:01:03
Post Id


Активный участник


Покинул форум
Сообщений всего: 5998
Дата рег-ции: Сент. 2011  
Откуда: Харьков


Помог: 126 раз(а)




ну так и проверяй существует ли такой action b шв


-----
Бесплатная система складского учета с открытым кодом https://zippy[dot]com[dot]ua/zstore
 
 Top
Exponat
Отправлено: 18 Декабря, 2013 - 12:10:14
Post Id



Частый гость


Покинул форум
Сообщений всего: 196
Дата рег-ции: Янв. 2013  


Помог: 0 раз(а)




Понимаю что надо проверку делать но не осмыслю как...
(Добавление)
Дайте хотя бы примеры. Или как оно называется официально чтоб в инете найти информацию.
 
 Top
caballero
Отправлено: 18 Декабря, 2013 - 12:25:25
Post Id


Активный участник


Покинул форум
Сообщений всего: 5998
Дата рег-ции: Сент. 2011  
Откуда: Харьков


Помог: 126 раз(а)




примеры чего? это же твой код.
проверяешь action. на каждый action должно быть действие
нет действия - значит неверный запрос

обычная конструкция
if
...
else if
...
else if
...
else error404

или типа того


-----
Бесплатная система складского учета с открытым кодом https://zippy[dot]com[dot]ua/zstore
 
 Top
Exponat
Отправлено: 18 Декабря, 2013 - 12:28:43
Post Id



Частый гость


Покинул форум
Сообщений всего: 196
Дата рег-ции: Янв. 2013  


Помог: 0 раз(а)




А такой код вобще правильный? Или лучше другой метод использовать? Этот код посути создает динамические страницы параметрами ссылки...на сколько я понял...
 
 Top
Exponat
Отправлено: 18 Декабря, 2013 - 15:39:57
Post Id



Частый гость


Покинул форум
Сообщений всего: 196
Дата рег-ции: Янв. 2013  


Помог: 0 раз(а)




Все. Разобрался.
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB