我遇到了多个$_GET
变量与“下一个”传递的问题。在URL中传递多个GET变量与“下一个”参数
我将用户重定向到登录页面:
[email protected]&activate_key=1421sdxzcxz213xz
的问题是,激活密钥被视为登录页面上的第二$_GET
参数(用“未来”一起),而不是被部分重定向$ _GET。
一个解决方案是使用cookie,有没有什么办法可以使这个工作与$_GET
虽然呢?
谢谢!
我遇到了多个$_GET
变量与“下一个”传递的问题。在URL中传递多个GET变量与“下一个”参数
我将用户重定向到登录页面:
[email protected]&activate_key=1421sdxzcxz213xz
的问题是,激活密钥被视为登录页面上的第二$_GET
参数(用“未来”一起),而不是被部分重定向$ _GET。
一个解决方案是使用cookie,有没有什么办法可以使这个工作与$_GET
虽然呢?
谢谢!
您需要使用urlencode
编码参数数据 - 这样的事情:
echo '<a href="login?next=' . urlencode('[email protected]&activate_key=1421sdxzcxz213xz') . '">link</a>';
这将产生一个像这样的链接:
<a href="login?next=initial_page%3Femail%3Djohn_doe%40gmail.com%26activate_key%3D1421sdxzcxz213xz">link</a>
...这将正确地解释。
您可以将&
的网址编码为%26
。
[email protected]&activate_key&1421sdxzcxz213xz
尝试这种情况:
header('Location: login?next='.rawurlencode('[email protected]&activate_key=1421sdxzcxz213xz'));
其中自动生成一个302响应。
测试代码:
<?php
if (isset($_GET['next']))
print $_GET['next'];
else
header('Location: '.$_SERVER['REQUEST_URI'].'?next='.rawurlencode('[email protected]&activate_key=1421sdxzcxz213xz'));
?>
真棒,非常感谢,它的工作:) – Cat 2010-08-26 22:59:45
@Cat,也许你应该考虑选择这是正确的? – ServAce85 2011-07-19 15:44:42