我真的不知道问题出在哪里。
我有一个名为“login.php”的脚本,它运行得非常完美。它通过 AJAX 调用,如果成功返回,页面会刷新并且用户已经登录。在该页面上使用以下代码设置 cookie:
setcookie("main", $row[0], time() + 3600, "/")
我有一个叫做“logout.php”的脚本。 它以相同的方式被调用(通过 AJAX 和页面刷新)。它只有两行代码:
<?php
setcookie("main", "", time() - 3600, "/");
echo "Done";
?>
从页面中调用它并没有起作用,所以我只是在浏览器中加载了logout.php。输出结果为“done”,但是在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。