未定义变量:_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);
}
小问题,但花了很长时间才发现,希望对大家有所帮助。
我正在使用 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);
}
小问题,但花了很长时间才发现,希望对大家有所帮助。