我正在构建登录页面。现在,页面上有一个我使用cookie的到期日期。我希望该网站在重新登录后重定向回到他们所在的页面。
为此,我使用一个cookie,该cookie具有存储在其中的页面名称(例如,queue.php),它将把它们带回来。
如果我要访问位于同一目录中的页面,但是如果我想返回子目录(例如,Deployment / deployment.php),则此方法很有效。
我已尝试使用urlencode(),反斜杠,addslashes(),%2F代替正斜杠,似乎没有任何工作。
这就是我设置cookie的方式:
$url_name = "Deployment/deployment.php";
setcookie("url",$url_name);
任何帮助都会受到赞赏,我完全迷失了。
答案 0 :(得分:1)
我不知道您的登录页面在哪里,但如果Deployment
是一个子目录(因此在主文件夹下面一层),您应该在其前面添加一个正斜杠,如下所示:
$url_name = "/Deployment/deployment.php";
setcookie("url", $url_name);
答案 1 :(得分:1)
setrawcookie()似乎是你想要的功能。根据php.net,它与setcookie()完全相同,只是它没有做任何urlencoding。
答案 2 :(得分:0)
也许您可以base64_encode()
值,然后在检索时base64_decode
?只是一个。但我不知道为什么不允许使用正斜杠。也许别人能够启发我!
答案 3 :(得分: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>";
?>
答案 4 :(得分:0)
究竟什么不起作用?如the manual中所述:
请注意,当您发送cookie时,cookie的值部分将自动进行urlencoded编码,当收到cookie时,会自动解码并将其分配给与Cookie名称相同的变量。
因此无需手动编码/解码。我不认为$url_name
中的斜线是问题所在。我怀疑你重定向到的路径是不正确的,但是如果没有更多的代码我就无法检查。