【发布时间】:2012-12-16 18:51:35
【问题描述】:
我最近将我的网站从 XAMPP 转移到了 MAMP。问题是我的注销系统不再工作。注销小部件:
<a href="logout.php">Log Out</a>
我的注销页面本身:
<?php
session_start()
session_destroy()
header('Location:login.php');
?>
奇怪的是,当我对 logout.php 进行一些更改时,例如使其成为一个简单的 echo 语句:
<?php
echo 'test';
//session_start()
//session_destroy()
//header('Location:login.php');
?>
我仍然没有在浏览器中看到“测试”;我只是留在 index.php,即使我已经注释掉了页面中的标题。我是 100% 链接路径没问题。
不管我是否修改了logout.php 文件,我可以看到服务器没有删除tmp/php 中的会话文件。这很奇怪,因为我在 MAC OS X 中允许每个人都可以读取和写入这个 tmp/php 文件夹。
操作系统:MAC OS X
服务器:MAMP 中的 Apache
PHP:5.4.4
浏览器:Google Chrome 和 Safari 都出现问题
(这是我在stackoverflow上发布问题的处女航,如果您提出改进我的提问的建议,请告诉我)
【问题讨论】:
-
如果你“留在index.php”,你肯定不会在浏览器中看到“test”,因为你说你改变了logout.php 到
echo 'test';语句。您应该改为访问 logout.php。 -
在 url 中手动输入 path_to_logout.php 时看到什么错误?
-
会不会是您遇到了错误,但 error_reporting 设置为 0?
-
注意:原生 PHP 会话文件不会在 session_destroy() 之后立即删除。它们按session configuration 指定的时间间隔被删除
-
这听起来很傻,但是 session_start 和 session_destroy 末尾缺少的逗号怎么办?尝试: session_start(); session_destroy();