Codeigniter-PHP-unserialize():偏移量为411字节的185处出错

Codeigniter-PHP-unserialize():偏移量为411字节的185处出错,php,codeigniter,session,serialization,Php,Codeigniter,Session,Serialization,嗨,我在Codeigniter+nginx服务器上遇到了一个奇怪的错误 我得到一个日志错误,它是: ERROR - 2013-07-17 15:01:22 --> Severity: Notice --> unserialize(): Error at offset 185 of 411 bytes /system/libraries/Session.php 726 因此,我将此代码放入Session.php库,以记录数据序列化的内容: function _unserialize

嗨,我在Codeigniter+nginx服务器上遇到了一个奇怪的错误

我得到一个日志错误,它是:

ERROR - 2013-07-17 15:01:22 --> Severity: Notice  --> unserialize(): Error at offset 185 of 411 bytes /system/libraries/Session.php 726
因此,我将此代码放入Session.php库,以记录数据序列化的内容:

function _unserialize($data)
    {   

        log_message('error', var_export($data, true));

        $data = @unserialize(strip_slashes($data));

        if (is_array($data))
        {
            foreach ($data as $key => $val)
            {
                if (is_string($val))
                {
                    $data[$key] = str_replace('{{slash}}', '\\', $val);
                }
            }

            return $data;
        }

        return (is_string($data)) ? str_replace('{{slash}}', '\\', $data) : $data;
    }
这将在日志文件中返回:

ERROR - 2013-07-17 15:01:22 --> 'a:11:{s:7:"user_id";s:2:"93";s:14:"user_name";s:7:"Michael";s:13:"user_last";s:5:"Russa";s:10:"user_email";s:22:"moo@ail.com";s:13:"user_loc";s:12:"??????";s:13:"user_lat";s:10:"55.72420";s:14:"user_lon";s:10:"37.6484220";s:16:"user_grav";s:32:"7ef03623b352c9b62f6a642ef4b40434";s:11:"user_ps";s:3:"152";s:9:"beta_u";s:3:"yes";s:12:"is_mod";s:4:"true";}'
ERROR - 2013-07-17 15:01:22 --> Severity: Notice  --> unserialize(): Error at offset 185 of 411 bytes /project/system/libraries/Session.php 726

**`NB: the serialized key values are not real, i changed them just to show you what that returns.`**
我还控制了php.ini和
magic\u quotes\u rcp=off
以及
magic\u quotes\u runtime=off

我在Codeigniter、HTML以及所有数据库表和数据库本身中使用了
UTF-8

我还在Codeigniter中使用
会话DB

不明白出了什么问题,可能是什么

会话是否太大?它使用db存储会话,所以我想知道它怎么会太大:(

我唯一可以强调的是,我更新了会话数据库字段 用户数据从TEXT转换为LONGTEXT,但对于这两种类型,错误仍然存在


感谢您的帮助。

我只是将sessions表中的'user\u data'字段从TEXT增加到MEDIUMTEXT,解决了这个问题。

序列化数据中字符串的长度不正确。例如:
s:11:“user\u ps”
必须是
s:7:“user\u ps”
@bystwn22
NB:序列化的键值不是真实的,我更改它们只是为了向您显示返回的值。
;)我承认它们是正确的(我指的是真实值)