我真的不知道问题在这里。setcookie不删除cookie
我有一个名为“login.php”的脚本,完美地工作。这就是所谓的AJAX,如果它成功返回时,页面刷新和用户登录,该Cookie设置页面上
setcookie("main", $row[0], time() + 3600, "/")
然后我就被称为“logout.php”的脚本。它被称为相同的方式(AJAX,然后页面刷新)。它只有两行:
<?php
setcookie("main", "", time() - 3600, "/");
echo "Done";
?>
调用它形成页面不起作用,所以我只是在浏览器中加载logout.php。输出“完成”,但在Chrome浏览器中检查我的Cookie后,显示cookie仍设置为“1”($ row [0]),并在login.php中设置的时间到期。
login.php和logout.php都在同一个文件夹中,即根目录,与其他所有文件夹相同。
此前,这是工作,但我所做的唯一更改是使网站上的标题栏自己的文件(仍在根目录中),并采取注销按钮的JavaScript功能,这是只需一个AJAX调用和一些jQuery悬停效果,并将其创建为自己的脚本文件,该文件位于_js文件夹中。但我根本没有更改logout.php,所以当我直接导航到它时它应该仍然有效,对吧?我的setcookie命令有什么问题,或者其他问题可能导致它?
编辑:我试图设置它在100秒而不是-3600过期,然后尝试更改它的名称,以便我可以将其识别为完全单独的cookie。他们都没有出现。根本没有设置cookie。
编辑2:我恢复到最后一次提交,并且一切都再次工作。我不知道为什么通过创建一些新文件来重新组织我的网站(logout.php根本没有改变)会使某个脚本无法创建cookie。
你确定你调用在同一个域?也许你设置www.domain.com Cookie,并要删除它在domain.com上? – 2012-04-17 16:07:26
我把它们都设置在“/”上,所以它应该是同样的东西,对吧?它们都在同一个文件夹中 – 2012-04-17 16:09:36
不,它是路径,域可能不同。在www.domain.com上设置cookie比它无法从domain.com访问,尽管他们是相同的域名,但理论上不是。因此,如果你在www.domain.com/login.php中设置域名,比注销php脚本必须从www.domain.com/logout.php调用而不是domain.com/logout.php – 2012-04-17 16:10:30