关于ecshop报错unserialize() Error at offset 130 of 138 bytes

2016-09-11 20:39 来源:www.chinab4c.com 作者:ecshop专家

 如果在用ecshop的时候,出现如下错误:

Notice: unserialize() [function.unserialize]: Error at offset 130 of 138 bytes in /data/www/wwwroot/**************/includes/cls_session.php on line 163

不要害怕,这是ecshop的一个小bug,不会一直出现,当有特殊字符保存在session里面的时候才会出现,如何解决呢?修改cls_session.php文件的如下3个地方就OK了。

注意:修改前先备份文件:网站根目录\\includes\\cls_session.php

解决方法:

cls_session.php的211行改成:
$data = base64_encode(serialize($GLOBALS['_SESSION']));

cls_session.php的163行改成:
$GLOBALS['_SESSION'] = unserialize(base64_decode($session['data']));

cls_session.php的178行改成:
$GLOBALS['_SESSION'] = unserialize(base64_decode($session_data['data']));

保存后,记得在后台清理一下缓存,这样就OK了~~