未定义变量:_SESSION [CORE/src/Network/Session.php CakePHP 3.0

Undefined variable: _SESSION [CORE/src/Network/Session.php CakePHP 3.0

我正在使用 CakePHP 3.0,并将其上传到服务器,它在本地工作正常,但不知为何在将其上传到服务器后却显示错误

Notice (8): Undefined variable: _SESSION [CORE/src/Network/Session.php, line 438]

如果有人对此有任何想法,请帮助我。我还在努力解决。
我还尝试将 session_start(); 放在 AppController 和许多其他地方,但后来它变成了空白。

将其放入服务器上的 php.ini 文件中

session.save_path = “/var/tmp”

您需要确保在要使用 $_SESSION 超全局的每个 PHP 文件的顶部启动会话。像这样:

<?php
  session_start();
  echo $_SESSION['youritem'];
?>

您忘记了 Session HELPER。

检查此 link:book.cakephp.org/2.0/en/core-libraries/helpers/session.html

我发现了问题, 当我将文件上传到服务器时,它会自动在 AppController 和另一个控制器文件的末尾附加白色空白行。

因此,当我从该文件中删除空白行时,它又可以正常工作了

    //To detect the file which have issue or extra space or early header start
//File location : vendor/cakephp/cakephp/src/Network/Session.php 
    public function write($name, $value = null)
            {
                if (empty($name)) {
                    return;
                }

                if (!$this->started()) {
                    $this->start();
                }

                $write = $name;
                if (!is_array($name)) {
                    $write = [$name => $value];
                }

                //remove the comment from bottom line and run your code it will 
                //show you the exact file from where you have to remove the blank space
                //session_start();
                $data = $_SESSION ?: [];
                foreach ($write as $key => $val) {
                    $data = Hash::insert($data, $key, $val);
                }

                $this->_overwrite($_SESSION, $data);
            } 

小问题,但花了很长时间才发现,希望对大家有所帮助。