我正在使用 CakePHP 3.0,并将其上传到服务器,它在本地工作正常,但不知何故,将其上传到服务器后显示错误
注意 (8):未定义的变量:_SESSION [核心/src/网络/会话.php,第 438 行]
如果有人对此有想法,请帮助我。我仍在尝试解决它。
我也试图把session_start();
放在AppController
和许多其他地方,但后来它变成了空白。
我发现了这个问题,当我将文件上传到服务器时,它会自动在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);
}
小问题,但花了很长时间才检测到它,希望这对大家有所帮助。
把它放在服务器上的 php.ini 文件中
session.save_path = “/var/tmp”
您需要确保在每个要使用 $_SESSION 超全局的 PHP 文件的顶部启动会话。喜欢这个:
<?php
session_start();
echo $_SESSION['youritem'];
?>
您忘记了会话帮助程序。
检查此链接 : book.cakephp.org/2.0/en/core-libraries/helpers/session.html