使用JURI :: current()保存到cookie时格式错误

时间:2015-07-31 04:57:24

标签: php joomla setcookie

我正在使用以下内容将当前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并执行重定向的正确方法,所以我不确定我做错了什么。

2 个答案:

答案 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