我正在使用以下内容将当前URI保存到cookie:
$redirect_address = JURI::current();
然后像这样设置cookie:
setcookie('redirect_to', $redirect_address, time() + (86400 * 30), "/", ".domain.com");
将'redirect_to'cookie的值保存为“http%3A%2F%2Fwww.domain.com /......"
我遇到的问题是在使用时页面没有重定向:
$redirect = "<script type=\"text/javascript\">location.href = '";
$redirect .= $_COOKIE['redirect_to'];
$redirect .= "';</script>";
我认为在保存cookie导致问题的价值时,它正在替换有趣的角色?我发现的所有资源都说这是将它传递给cookie并执行重定向的正确方法,所以我不确定我做错了什么。
答案 0 :(得分:0)
我更改了setcookie()行以使用:
setrawcookie('redirect_to', $redirect_address, time() + (86400 * 30), "/", ".domain.com");
这似乎已经成功了。
答案 1 :(得分:0)
来自http://php.net/manual/en/function.setcookie.php:
请注意,当您发送cookie时,cookie的值部分将自动进行urlencoded编码,当收到cookie时,会自动解码并将其分配给与Cookie名称相同的变量。如果你不想这样,你可以使用setrawcookie()来代替使用PHP 5。
因此该值是HTML编码是正确的。但它也应该自动解码;我刚测试了你的示例代码,它重定向很好。我猜这个错字在其他地方。
当然,您可以继续使用setrawcookie