login凭据Cookie正在由我们的服务器上的ASP脚本创build。 在不同的目录中,我们有PHP脚本, 只需要从这个cookie访问用户名,这是成功的。 问题是,当你点击注销button,这使得用户logout.php,cookie不被破坏。 我的页面告诉用户他们已经注销了,但是我有一个页面上的testing链接,让你回到主index.php,除非你login,否则你不应该看到内容,但你仍然这样做。 使用Firecookie我可以看到,当logout.php加载完成后,cookie不会被破坏。 我已经尝试了迄今为止没有运气的通常的方法。
<?php session_start(); session_unset(); session_destroy(); unset($_COOKIE["creds"]); setcookie("creds", "", time()-3600); ?>
有任何想法吗?
当你调用setcookie()来删除一个先前设置的cookie时,你需要传递相同的path和域的值,这些值是在cookie被设置的时候使用的。 如果使用ASP设置,那么使用了哪些初始参数?
setcookie($name, $value, $expire, $path, $domain)
请注意,如果省略, $path将默认为当前目录,并且像您说的那样,您的PHP脚本与您的ASP脚本位于不同的目录中,因此将阻止Cookie被删除。 可能是为整个域设置的? 即。 “/”
unset($_COOKIE["creds"]); 只是从当前请求的$ _COOKIE超全局中删除这个cookie,它实际上不会删除cookie。 但是,如果稍后在脚本中检查$_COOKIE['creds']的值,这是一个好主意。
很好,就是这样。 谢谢你,先生。
对于想知道的其他人,我用这个replace了原来提供的代码…
setcookie("creds", $_COOKIE["creds"], time()-3600, "/");
…build议。
再次感谢。