$_SESSION变量在$GLOBALS中不可见


$_SESSION variable not visible in $GLOBALS

我是新手,不想只是去改变我或同事的php.ini。

我装的是Windows,他装的是Ubuntu。

我有两页login.phpmain.php,每页的顶部有以下代码

if(session_id() == '') {
    session_start();
}

我将会话变量设置为1或0,这取决于登录的用户是否是管理员。

单击login后,您将被带到main.php。在页面的顶部,我做了一个print_r($GLOBALS),我可以看到相当多的全局变量,包括$_SESSION['admin']条目。

在我同事的电脑上,只有大约5个全局显示,$_SESSION不在那里。

php.ini设置问题吗?我该从哪里着手解决这个问题呢?

你必须调用session_start();在每一页。——Naktibalda

php.ini不应该与此有任何关系。——serakfalcon

错了

那为什么它能在一台机器上运行而不能在另一台机器上运行?会话。auto_start in php.ini

会话。auto_start布尔

会话。Auto_start指定会话模块是否在请求启动时自动启动会话。默认为0(禁用)。

不依赖于它,你需要有

session_start();

在你想要访问或操作会话数据的每个页面的顶部