ThinkPHP 的 unserialize 出错及解决

Fengzi · 7 年前 发布 · 594 次点击

废话不多说,直接进入主题。

unserialize 在部分服务器环境(我测试的时候在Windows server环境下面是没问题的,在Linux下面就会出现这种问题)下可能会出现错误,原因是值存在特殊字符

为什么会出现特殊字符呢,其实这个问题是系统在 serialize 的时候将引号(或者是其他的符号,我遇到这种情况的时候是引号)转义了

知道了为什么,解决起来就快了,在 unserialize 之前先把变量用 stripslashes 过滤一遍就行了

ThinkPHP框架在部分Linux服务器环境下面可能就会出现这个问题导致多主题切换的时候不能保留在某个主题下面,这个时候就需要把ThinkPHP内核的functions.php里面的cookie方法的返回cookie值的那段代码的 unserialize 之前先把 $value 用 stripslashes 过滤一遍了

6 回复 | 直到 2010-06-06 20:59:00 +8:00
添加一条新的回复