PHP - & в заголовке () - PullRequest
       17

PHP - & в заголовке ()

1 голос
/ 04 июля 2011

У меня есть параметр:

http://example.com?ex=http://la.net?c1=a1&c2=a2&c3=a3

Я хочу перенаправить на этот URL, но пока я делаю это, я попадаю в

http://example.com?ex=http://la.net?c1=a1

Я знаю, что это из-за знака & ...

Ответы [ 3 ]

4 голосов
/ 04 июля 2011

Вы должны закодировать параметры, которые передаются в URL:

$url = "http://example.com?ex=".urlencode("http://la.net?c1=a1&c2=a2&c3=a3");
header('Location: '.$url);
1 голос
/ 04 июля 2011

вы просто должны быть в состоянии сделать что-то вроде этого:

header('Location: http://example.com?ex=' . urlencode($_GET['ex']));

urlencode () принимает строку и изменяет символы таким образом, что строка затем может быть передана какзначение в URL, чтобы оно не влияло на весь URL.

0 голосов
/ 12 июня 2012

Попробуйте использовать & вместо & в значении параметра.

function fixURL($curURL){
   return preg_replace("/&/","&",$curURL);
}
$param1 = "http://la.net?c1=a1&c2=a2&c3=a3";
$param2 = "http://la.net?c1=a1";
$param3 = "http://ladelala.net?c1=a1&c2=a2&c3=a3";
$url = "http://example.com?ex=".fixURL($param1) . "&ex2=".fixURL($param2) . "&ex3=".fixURL($param3);
header('Location: '.$url);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...