PHP设置会话导致错误

Posted

技术标签:

【中文标题】PHP设置会话导致错误【英文标题】:PHP setting sessions cause error 【发布时间】:2016-07-05 06:37:37 【问题描述】:

我将我的项目复制到我的桌面。但是当我在桌面上运行项目时,它不会加载login.php

session_start();
  if (isset($_SESSION['username'])) 
    header('Location: index.php');
  

我的登录页面中有上述代码,以便在用户已经登录时将用户重定向到索引页面。这导致我出错。 删除上面这段代码后login.php加载成功。

我在笔记本电脑上使用 2013 年编译的 xampp 版本,在台式机上使用 2015 年编译的版本。这是导致错误吗?以及它的解决方案是什么。

【问题讨论】:

在设置 header 之前你会产生任何输出吗? 你真的应该总是header('Location之后使用die(),以确保PHP按预期终止。 页面根本没有加载。它显示现在无法访问此网页 能否编辑您的问题并添加完整的错误消息? 当您的工作代码在您更改环境时停止工作时,它的运行通常是因为新环境使用与旧环境不同的配置设置,并且代码依赖于特定配置设置。 【参考方案1】:

您收到此错误是因为未设置会话变量首先尝试打印类似的内容,并且您应该在标头之后使用 exit()。它应始终与标头一起使用以停止进一步处理。

session_start();
print_r($_SESSION['username']); // just to check session exist or not

如果它不能解决您的问题,请在此处提供您的所有代码。

【讨论】:

【参考方案2】:

我解决了这个问题。我将我的 appache 端口号从 80 更改为 81 。我想那是错误。 我对php.inc 文件做了一点改动

session.use_only_cookies=0 

已改为

session.use_only_cookies=1

它现在可以工作了

参考 What may cause an ERR_CONNECTION_RESET error, on xampp while using session

【讨论】:

以上是关于PHP设置会话导致错误的主要内容,如果未能解决你的问题,请参考以下文章