尝试使用 PHP 销毁 ASP cookie

尝试使用 PHP 销毁 ASP cookie

我们服务器上的 ASP 脚本正在创建登录凭据 cookie。在另一个目录中,我们有需要访问的 PHP 脚本只是从此 cookie 中获取用户名,成功了。问题是,当您单击注销按钮时,用户将转到 logout.php,但 cookie 不会被销毁。我的页面会告诉用户他们已注销,但页面上有一个测试链接,可将您带回主 index.php,除非您已登录,否则您不应该看到其中的内容,但您仍然可以查看。使用 Firecookie,我可以看到当 logout.php 加载完成后 cookie 不会被销毁。到目前为止,我尝试了常用方法,但都没有成功。

<?php 
session_start();
session_unset();
session_destroy();
unset($_COOKIE["creds"]);
setcookie("creds", "", time()-3600);
?>

有任何想法吗?

答案1

当你调用setcookie()删除先前设置的 cookie 时,你需要传递相同的值小路领域在设置 cookie 时使用的参数。如果使用 ASP 设置,那么使用了哪些初始参数?

setcookie($name, $value, $expire, $path, $domain)

请注意,$path如果省略,将默认为当前目录,并且如您所说,您的 PHP 脚本与 ASP 脚本位于不同的目录中,因此这将阻止 cookie 被删除。可能是为整个域设置的?即“/”

unset($_COOKIE["creds"]);$_COOKIE['creds']只是从当前请求的 $_COOKIE 超全局变量中删除此 cookie,它实际上不会删除该 cookie。但如果您稍后在脚本中检查值,这是一个好主意。

答案2

太好了,就是这样。谢谢您,先生。

对于其他想知道的人,我用这个替换了原始提供的代码......

setcookie("creds", $_COOKIE["creds"], time()-3600, "/");

... 按照建议。

再次感谢。

相关内容