繁体   English   中英

session_start(): 无法解码会话对象

[英]session_start(): Failed to decode session object

我有时在使用 CodeIgniter 时遇到以下问题:

错误 - 2019-03-05 19:57:26 --> 严重性:警告 --> session_start():无法解码会话对象。 会话已被破坏 /system/libraries/Session/Session.php 143

此错误出现在我的服务器日志中,无法人工复制。

我已经阅读了以下 SO 问题:

我也在 CodeIgniter 论坛上问过,但我没有任何答案。

https://forum.codeigniter.com/thread-72960.html

这是我的会话配置(在application/config/config.php

$config['sess_driver'] = 'files';
$config['sess_cookie_name'] = 'ci_session';
$config['sess_expiration'] = 7200;
$config['sess_save_path'] = NULL;
$config['sess_match_ip'] = FALSE;
$config['sess_time_to_update'] = 300;
$config['sess_regenerate_destroy'] = FALSE;

任何想法可能是该问题的根源和/或从哪里开始?

我在使用数据库选项存储会话信息时遇到了这个错误。 使用此选项时,CodeIgniter 将会话数据存储在名为 ci_sessions 的表中,特别是在“数据”列中。 默认情况下,CodeIgniter 将此列创建为 blob 数据类型,其最大数据大小为 65,535 字节。 我的应用程序超出了这个大小并抛出了错误。 为了解决这个问题,我将数据类型更改为 mediumblob,其最大大小为 16,777,215 字节。 之后,我的应用程序不再产生错误并按预期工作。

问题出在这个设置上

$config['sess_save_path'] = NULL;

使用“文件”驱动程序时,您是,由以下确定

$config['sess_driver'] = 'files';

$config['sess_save_path']必须设置为存储会话文件的绝对路径 例如

$config['sess_save_path'] = '/var/www/project/sessions/';

当设置为 NULL 时,会发生各种奇怪和不可预测的事情。 该文件夹还必须具有适当的所有权和权限。

在 application/config/config.php 中,设置这个值:

$config['sess_save_path'] = sys_get_temp_dir();

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM