Обработка GET-запроса

12
artzor
На сайте с 30.10.2008
Offline
111
1422

Всем привет!!!

Столкнулся с такой проблемой, надеюсь на помощь.

Открываю файл animal.php с применением get-запроса: http://site.ru/animal.php?id=slon

В самом файле обработка запроса

echo '<center><img src="http://site.ru/photo/' .htmlspecialchars($_GET["id"]). '.jpg" width="450"></center>';

срабатывает, изображение slon.jpg находящееся в папке photo открывается, а вот:

include ('site.ru/photo/'.htmlspecialchars($_GET["id"]).'.php');

нет, этим я пытаюсь инклудить описание самого слона расположенное в файле slon.php,

но вместо этого:

Warning: include(site.ru/photo/slon.php) [function.include]: failed to open stream: No such file or directory in /home/site.ru/htdocs/photo/animal.php on line 28

Warning: include() [function.include]: Failed opening 'site.ru/photo/slon.php' for inclusion (include_path='.:/usr/share/php5:/usr/share/php') in /home/site.ru/htdocs/photo/animal.php on line 28

Файл slon.php в папке имеется, если скопировать url из ошибки - site.ru/photo/slon.php в строку браузера все работает.

Заранее благодарю ...

p/s/ В php не силен, прошу сильно не пинать ...

Hartamon
На сайте с 04.07.2006
Offline
165
#1


include ('/home/site.ru/htdocs/photo/'.htmlspecialchars($_GET["id"]).'.php');

ну или


include ('http://site.ru/photo/'.htmlspecialchars($_GET["id"]).'.php');

В первом случае - путь до файла на сервере, во втором - URL, который должен начинаться с http://

LEOnidUKG
На сайте с 25.11.2006
Offline
1774
#2

Никогда так не делайте инклуды.

Делайте сразу от корня сайта:


include ($_SERVER['DOCUMENT_ROOT'].'/photo/'.htmlspecialchars($_GET["id"]).'.php');

✅ Мой Телеграм канал по SEO, оптимизации сайтов и серверов: https://t.me/leonidukgLIVE ✅ Качественное и рабочее размещение SEO статей СНГ и Бурж: https://getmanylinks.ru/ ✅ Настройка и оптимизация серверов https://getmanyspeed.ru/
H
На сайте с 13.06.2011
Offline
9
#3

путь к файлу php указывается не относительно сайта, а относительно того файла php в котором он инклудится. Есть такое понятие как абсолютный путь к каталогу со скриптами вашего сайта от которого и стоит отталкиваться.

Для понимания ситуации в том файле, где вы инклудите ваш slon.php, вставьте эту строку и вы увидите собственно от чего отталкиваться и как правильно задать путь к вашему слону :)

echo dirname(__FILE__);

И это вам должно помочь :)

$_SERVER['DOCUMENT_ROOT']
Слово не воробей. Все не воробей, кроме воробья!
artzor
На сайте с 30.10.2008
Offline
111
#4

Спасибо, по приведенным примерам исправил ошибку, теперь все ок ... Еще раз благодарю.

RO
На сайте с 13.07.2009
Offline
88
#5

ай какая же красивая уязвимость то получается..

artzor
На сайте с 30.10.2008
Offline
111
#6
RedOK:
ай какая же красивая уязвимость то получается..

хм, а поподробнее ?

LEOnidUKG
На сайте с 25.11.2006
Offline
1774
#7
RedOK:
ай какая же красивая уязвимость то получается..

Если не убрать ошибки мы получим полный путь до сайта? Ужас!!

Или чего вы хотите этому инклуду скормить?

RO
На сайте с 13.07.2009
Offline
88
#8

эмм.. локальный инклуд. не?

LEOnidUKG
На сайте с 25.11.2006
Offline
1774
#9
RedOK:
эмм.. локальный инклуд. не?

А у сайта на лбу написано, что там иклуд? И чего локально будете инклудить?

RO
На сайте с 13.07.2009
Offline
88
#10

не серьезно вы к этому относитесь. естественно на лбу у сайта не написано. не секьюрно это.. короче забейте :) не мне вас учить.

12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий