【问题标题】:When i upload my code into the server, why my logout.php unable to work?当我将代码上传到服务器时,为什么我的 logout.php 无法工作?
【发布时间】:2016-11-13 00:26:55
【问题描述】:

这是我在 logout.php 中的代码。

session_start();
    session_unset();
    session_destroy();
    header("Location: ../index.php");  

当我在本地主机中运行此代码时,它可以正常工作,但是当我将它上传到我的服务器时它不起作用,并且使我无法从我的网站注销。 请有人帮我解决这个问题,谢谢。

【问题讨论】:

  • 你有没有直接从浏览器调用logout.php页面?
  • 执行logout.php会发生什么?它是否重定向到 index.php?
  • "it didn't work" 对我们没有帮助,让我们调试一下:而不是 header("location.. try write var_dump($_SESSION); - 你运行时的输出是什么文件?
  • 我试过这个代码 var_dump($_SESSION);但它没有显示任何内容,仍然在与白屏相同的页面中。
  • 注意什么版本的php和webservice

标签: php native logout


【解决方案1】:

确保您的会话在销毁之前已初始化。

session_start() ;
var_dump($_SESSION); // Check session is set/not
session_destroy() ;
header("Location: ../index.php");

如果您有任何会话值打印,那么我们当然可以销毁它。

【讨论】:

  • 它没有显示任何内容,仍然在与白屏相同的页面中..
  • 应该是评论而不是答案
【解决方案2】:

在多种情况下您的 logout.php 可能不起作用。最常见的一种是您的权限不正确,无法在服务器上创建会话文件。

要检查是否是这种情况,我建议您启用错误报告。您可以通过将以下几行放在 PHP 文件的顶部来做到这一点:

// Put this code in your logout.php temporarily
error_reporting(E_ALL);
ini_set('display_errors', 'On');

然后,确保您的会话尚未启动。

// Replace session_start(); in all files with this
if (!isset($_SESSION)) {
    session_start();
}

我希望上面的代码更改能告诉你你的错误可能是什么。

【讨论】:

  • 我应该输入 error_reporting(E_ALL); ini_set('display_errors', '开');在每个文件中?以及 if (!isset($_SESSION)) { session_start(); 怎么样?我应该把这段代码放在哪里?我想问题是不能像你说的那样在服务器上创建会话文件,但我不知道为什么..我只是不明白为什么它不能在我的服务器 cpanel 中工作,但它在我的 localhost 中正常工作..
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-11-30
  • 1970-01-01
  • 2015-12-31
  • 1970-01-01
  • 2014-04-28
  • 2021-05-23
相关资源
最近更新 更多