0

我正在建立一个登录页面。现在,我使用 cookie 的页面有一个过期时间。我希望网站在他们再次登录后重定向回他们所在的页面。

为此,我使用了一个 cookie,其中存储了页面的名称(例如 queue.php),它会将它们取回。

如果我要访问同一目录中的页面,此方法非常有效,但如果我想返回子目录(例如 Deployment/deployment.php),则它不起作用。

我尝试使用 urlencode()、反斜杠、addslashes()、%2F 代替正斜杠,但似乎没有任何效果。

这就是我设置cookie的方式:

$url_name = "Deployment/deployment.php";
setcookie("url",$url_name);

任何帮助将不胜感激,我完全迷失了。

4

5 回答 5

2

setrawcookie() 似乎是您想要的功能。根据 php.net,它与 setcookie() 完全相同,只是它不做任何 urlencoding。

于 2012-01-20T18:45:39.997 回答
1

我不知道你的登录页面在哪里,但如果Deployment是一个子目录(所以在主文件夹下一层)你应该在它前面添加一个正斜杠,如下所示:

$url_name = "/Deployment/deployment.php";
setcookie("url", $url_name);
于 2011-08-18T14:07:43.173 回答
0

也许您可以在检索时base64_encode()获得价值,然后再获得它?base64_decode只是一个。不过,我不知道为什么不允许使用正斜杠。也许其他人将能够启发我!

于 2011-08-18T14:07:42.503 回答
0

你能再解释一下你的问题吗?我刚刚尝试了以下方法,并且能够很好地检索 cookie 的值:

<?php 
$url = "http://google.com/mail";
echo "Setting cookie with value " . $url . "</br>";
setcookie("url", $url);
echo "The cookie is: " . $_COOKIE['url'] . "</br>";
?>
于 2011-08-18T14:11:29.000 回答
0

究竟是什么行不通?如手册所述:

请注意,当您发送 cookie 时,cookie 的值部分会自动进行 urlencoded,当接收到时,它会自动解码并分配给与 cookie 名称同名的变量。

因此无需手动编码/解码。我不认为斜线$url_name是问题所在。我怀疑您重定向到的路径在某种程度上不正确,但如果没有更多代码,我无法检查。

于 2011-08-18T14:12:06.370 回答