PHP-редирект помогите, плз, отсекается кусок запроса...

12
[Удален]
1166

напишу всё в "коде", чтобы ссылками ничего не стало

есть скрипт

http://www.site.ru/red.php
<?
header ("location: ".$url);
?>
и есть ссылка
http://www.site.ru/red.php?url=http://www.site.ru/index.php?option=com_zoom&Itemid=47&catid=6
при нажатии на неё отрезается всё, что после &
и выходит на http://www.site.ru/index.php?option=com_zoom
что надо поправить в red.php?
DJ_Petrovich
На сайте с 13.02.2006
Offline
188
#1

Вы сами поняли что спросили?

Прочитайте свой пост еще раз.

Тонны одноцентового трафика из Директа для ваших сайтов. Настройка - бесплатно! (/ru/forum/779616) Лендинг + Реклама в Яндекс.Директ за 15 минут! (/ru/forum/comment/16213883)
[Удален]
#2

конечно понял.. может где неправильные определения, но суть вопроса, думаю, ясна

DJ_Petrovich
На сайте с 13.02.2006
Offline
188
#3

я раз пять прочитал по слогам - так нифига и не понял.... 😕

ладно....

старость не радость....

I
На сайте с 29.04.2006
Offline
135
#4

<?

$url=$_GET['url'];

header('location: '.$url);

?>

Попробуй так. Хотя странно, не должно обрубать.

Коля Дубр
На сайте с 02.03.2005
Offline
153
#5

http://www.site.ru/red.php?url=http://www.site.ru/index.php?option=com_zoom&Itemid=47&catid=6

Не нравится мне эта ссылка =) Может по ей как-нибудь.. это... urlencode()'ом пройтись? =)

Ну, и как Вам верно подсказали, register_globals = on - не есть гуд, а если приведенный Вами пример хоть как-то работает, то оне скорее всего именно on ;)

Разрабатываю общую шину (http://habrahabr.ru/company/floxim/blog/268467/) помаленьку. ...а еще у меня есть бложек (http://www.blogovo.ru/).
DJ_Petrovich
На сайте с 13.02.2006
Offline
188
#6

со всей силы поднатужив мозг - все таки смог понять суть вопроса.

Ваша проблема в том что, все данные которые после "?" не отрезаются, как Вы утвержадете, а просто передаются как следующие две переменные в параметре к файлу red.php, т.е. никакого отношения к переменной url они не имеют ваще.

NB
На сайте с 14.09.2004
Offline
95
#7

Если посмотреть print_r($_GET); то увидим следующее:

Array

(


(самый "ломовой", но не единственный способ; при желании можно сходу еще с полдюжины придумать)
" title=" => http://www.site.ru/index.php?option=com_zoom
[Itemid] => 47
[catid] => 6
)
Комментариев, надеюсь, не требуется.

Побороть это, можно, например, так:
header ("Location: ".substr($_SERVER["QUERY_STRING"],4));
(самый "ломовой", но не единственный способ; при желании можно сходу еще с полдюжины придумать)
" target="_blank"> => http://www.site.ru/index.php?option=com_zoom
[Itemid] => 47
[catid] => 6
)
Комментариев, надеюсь, не требуется.

Побороть это, можно, например, так:
header ("Location: ".substr($_SERVER["QUERY_STRING"],4));
(самый "ломовой", но не единственный способ; при желании можно сходу еще с полдюжины придумать)

[Удален]
#8

Nick Bubelo, биг респект!

помогло!

Коля Дубр
На сайте с 02.03.2005
Offline
153
#9
Scamp:
помогло!

Помогло-то помогло, но похоже на костыль. По-хорошему, еще раз говорю, там, где задается параметр url, нужно использовать urlencode(), чтоб в $_GET['url'] лежало именно то, что нужно. Хотя, если за формирование ссылки отвечаете не вы, придется использовать что-то вроде того, что предложил Nick Bubelo, т.е. разбирать $_SERVER['QUERY_STRING'].

[Удален]
#10

Коля Дубр, ссылки наформировала джумла и их уже очень много и они стоят..

12

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