在PHP PHP中保持斜杠

时间:2011-08-18 14:04:36

标签: php cookies setcookie slash

我正在构建登录页面。现在,页面上有一个我使用cookie的到期日期。我希望该网站在重新登录后重定向回到他们所在的页面。

为此,我使用一个cookie,该cookie具有存储在其中的页面名称(例如,queue.php),它将把它们带回来。

如果我要访问位于同一目录中的页面,但是如果我想返回子目录(例如,Deployment / deployment.php),则此方法很有效。

我已尝试使用urlencode(),反斜杠,addslashes(),%2F代替正斜杠,似乎没有任何工作。

这就是我设置cookie的方式:

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

任何帮助都会受到赞赏,我完全迷失了。

5 个答案:

答案 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中的斜线是问题所在。我怀疑你重定向到的路径是不正确的,但是如果没有更多的代码我就无法检查。