是什么破坏了另一个页面上的工作 _SESSION 美元


What breaks a working $_SESSION on another page?

我有一个奇怪的问题。其中,我使用 $_SESSION 向用户显示登录错误。它的工作没有问题。几天前,我将我的主机从 Plesk 主机更改为safe_mod运行的 cPanel 主机。不知何故,我在登录页面上的 _SESSIONs 美元不起作用。我在索引页面上测试 $_SESSION,它工作正常,并且 $_SESSION 函数的工作没有任何问题。两个页面都包含相同的会话起始页面。

当我的函数文件包含在内时,登录页面上也没有任何效果。(会话,发布项目,类,功能等什么都没有。但是即使包含函数文件,索引页上的所有内容也都可以正常工作。这是怎么回事?可能是什么原因?

PS:我正在使用用户蛋糕作为会员系统。我的服务器不允许我在htaccess级别上转换PHP错误,似乎什么都没有

error_reporting(E_ALL);
ini_set('display_errors', '1');

在我的错误日志中似乎也没有任何内容。

编辑:我们成功地使用

ini_set('error_reporting', 8191); 
ini_set('display_startup_errors', 1); 
ini_set('display_errors', 1);

感谢 @J A,但似乎没有错误。

以下任一解决方案。

  1. 把session_start()放在你从中访问$_SESSION的页面的顶部。

  2. 检查您的 php.ini,如果您不想遵循其他解决方案,可以将会话自动启动设置为 1。

文件顶部添加session_start()

<?php session_start(); ?>

我知道这个答案很愚蠢....但我认为你错过了session_start();在您的登录页面顶部

<?php session_start();?>

或者我猜您一定使用相同的页面进行登录和注销。因此,由于配置错误,会话被取消设置或销毁。如果是这样,请检查一次代码或将文件分开以进行登录和注销...