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设置会话导致错误的主要内容,如果未能解决你的问题,请参考以下文章

如何在 symfony 2/3 中关闭会话?

无法启动会话:已由 PHP 启动(设置了 $_SESSION)。 500 内部服务器错误 - RuntimeException

使用会话时在 xampp 上可能导致 ERR_CONNECTION_RESET 错误的原因

Django 会话导致 Angular 出现 JWT“令牌丢失或不正确”错误

设置在重复输入尝试唯一字段时导致 php 错误?

由于不活动而导致会话超时[重复]