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
Отправлено: 22 Октября, 2013 - 16:04:19
Post Id



Частый гость


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


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




Здравствуйте.
Вот такая ссылка рабочая:
CODE (htmlphp):
скопировать код в буфер обмена
  1. http://www.домен.ру/?action=skyboard

А такая уже не работает:
CODE (htmlphp):
скопировать код в буфер обмена
  1. http://www.домен.ру/?action=skyboard.php?act=cat&cat_id=11


Организация ссылок происходит в главном индексе так:
PHP:
скопировать код в буфер обмена
  1. $action = $_GET['action'];
  2.                 if ($action=="index" or !isset($action))
  3.                 {
  4.                 include "page/index.php";
  5.                 }
  6.                 if (isset($action) and $action != "index")
  7.                 {
  8.                 $page = "page/".$action.".php";
  9.                 if (file_exists($page))
  10.                 {        
  11.                 include "page/".addslashes($action).".php";
  12.                 }
  13.                 else
  14.                 {
  15.                  Такой страницы нет.
  16.                 }
  17.                 }
 
 Top
teddy
Отправлено: 22 Октября, 2013 - 16:10:40
Post Id


Участник


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


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




сделай var_dump($action) и посмотри, есть ли у тебя такой файл, очевидно что нет, поэтому и не инклюдится
Exponat пишет:
else {
Такой страницы нет. //где echo/print? Улыбка)
}

(Отредактировано автором: 22 Октября, 2013 - 16:16:01)

 
 Top
IllusionMH
Отправлено: 22 Октября, 2013 - 16:13:01
Post Id



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


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


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




Exponat, ух, еще б найти способ залить php файл и таким инклюдам цены б не было для злоумышленников.
Вообще, для начала сделайте var_dump($_GET) перед инклюдом и условиями.

skyboard.php - без .php иначе 2 раза будет при поиске итогового файла.
По мере выполнения ставьте echo 'этап' или var_dump($page) чтобы понимать где отваливается код, если не подключаете дебагер

(Отредактировано автором: 22 Октября, 2013 - 16:16:26)

 
 Top
Exponat
Отправлено: 22 Октября, 2013 - 16:22:57
Post Id



Частый гость


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


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




IllusionMH, я извиняюсь на перед..с php я начинающий. Задача у меня встроить доску объявлений в шаблон сайта. Доска есть (skyboard.php в папке page). Сайт самописный. Структуру и идеологию подключение страниц я не создавал....

Подскажите хотя бы пример...
Я о var_dump прочитал но не понял...

Может даже не примеры а скажите для чего оно нужно. И в чем не правильно я там делаю? Злоумышленникам легко добраться до страниц? Проясните пожалуйста.
(Добавление)
Сделал так:
CODE (htmlphp):
скопировать код в буфер обмена
  1. http://www.домен.ру/?action=skyboard?act=cat&cat_id=11
но все равно пишет в шаблоне "Такой страницы нет."

skyboard.php существует физически. А cat нету такого файла.

(Отредактировано автором: 22 Октября, 2013 - 16:27:50)

 
 Top
IllusionMH
Отправлено: 22 Октября, 2013 - 16:31:17
Post Id



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


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


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




Exponat, просто инклюдьте этот файл в месте, где должна быть доска по строгому условию, а не вытягивая имя файла из строки
Не передавайте имена файлов в запросах, а то при наличии способа заливки изображений(без проверки) можно нехило пролететь.

по var_dump написано в документации и тут на сайте.

ну допустим если есть заливка изображений(с недостаточной проверкой) и если постараться, то можно легко передать путь к файлу в экшн и можно выполнять любой код.
 
 Top
Exponat
Отправлено: 22 Октября, 2013 - 16:44:11
Post Id



Частый гость


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


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




Не понимаю.....
У меня главный index.php находится в корне сайта. В нем написано то условие
и тут же инклудится шапка (include/top.php), серединка сайта (page/index.php) и низ сайта (include/footer.php).
Теперь все другие страницы и информация содержатся в файлах дериктории page. Например страница-шаблон для вывода новостей находится в page/news_inf.php. Например полная рабочая ссылка новости выглядит так:
CODE (htmlphp):
скопировать код в буфер обмена
  1. http://www.домен.ру/?action=news_inf&id=27033
.
Так как мне эту доску объявлений подключить? Мне кажется не все так просто. Очень много параметров ссылки в файле доски объявления. Это наверное нужно полностью пересматривать код....
 
 Top
IllusionMH
Отправлено: 22 Октября, 2013 - 17:05:17
Post Id



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


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


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




Exponat, для начала убедитесь что вы можете заинклюдить свой файл(из кода там достаточно WORKS!) в этом файле var_dump($_GET); чтобы увидеть все переданные параметры
 
 Top
Exponat
Отправлено: 22 Октября, 2013 - 17:17:09
Post Id



Частый гость


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


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




При этой ссылке
CODE (htmlphp):
скопировать код в буфер обмена
  1. http://www.домен.ру/?action=skyboard?act=cat&cat_id=11

var_dump($_GET); выдает:
CODE (htmlphp):
скопировать код в буфер обмена
  1. array(2) { ["action"]=> string(16) "skyboard?act=cat" ["cat_id"]=> string(2) "11" }
 
 Top
IllusionMH
Отправлено: 22 Октября, 2013 - 17:19:44
Post Id



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


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


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




Exponat, в теперь смотрите где в url ошибка, и как правильно передаются параметры в get запросе
 
 Top
Exponat
Отправлено: 22 Октября, 2013 - 17:27:50
Post Id



Частый гость


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


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




А как тут разобрать где ошибки?
Например при рабочей ссылки
CODE (htmlphp):
скопировать код в буфер обмена
  1. http://www.домен.ру/?action=news

var_dump($_GET); показывает
CODE (htmlphp):
скопировать код в буфер обмена
  1. array(1) { ["action"]=> string(4) "news" }
Тут тоже ошибки? То есть ссылка нормально работает но есть в ней ошибки?

Извините что достаю так...
 
 Top
IllusionMH
Отправлено: 22 Октября, 2013 - 17:38:57
Post Id



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


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


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




Exponat, это ж работает, логично что тут нет проблем.
skyboard?act=cat в экшене не смущает, что лишний параметр сюда попал, а не отдельным. ? только в начале запроса должен идти.
 
 Top
MAXUS
Отправлено: 22 Октября, 2013 - 22:17:07
Post Id


Посетитель


Покинул форум
Сообщений всего: 329
Дата рег-ции: Апр. 2011  


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




IllusionMH пишет:
Exponat, это ж работает, логично что тут нет проблем.
skyboard?act=cat в экшене не смущает, что лишний параметр сюда попал, а не отдельным. ? только в начале запроса должен идти.


Сдается, это не лишний параметр. По-моему, человек пытается в get-переменную передать url с get-переменными.
 
 Top
IllusionMH
Отправлено: 23 Октября, 2013 - 00:49:19
Post Id



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


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


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




MAXUS, ну я просто намекал, что то, что должно быть вторым параметром, попадает в первый из-за неправильного символа-разделителя параметров. Нужно делать проверку при создании ссылок или просто внимательно следить и добавлять &
 
 Top
Exponat
Отправлено: 23 Октября, 2013 - 11:23:12
Post Id



Частый гость


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


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




IllusionMH, спасибо, разобрался Улыбка
 
 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