关于多语言时 unserialize() 错误的解决方法
时间:2010-08-24
来源:互联网
TP2 在多语言配置时,会将语言配置保存为cookie,内容如下:
APPNAME_think_language
s%3A5%3A%22zh-cn%22%3B
在核心缓存文件中 unserialize($_cookie[$name]) 处报错,也就是调试器报的错。
网上查了一下,应该是cookie内容不合法的问题,在unserialize反序列化cookie时用stripslashes处理一下即可解决。
现在问题是:直接修改缓存runtime文件debug就不会报错了,但是此方法是不可行的,要修改缓存文件生成器才能解决问题。
跟踪了一下,只要修改 THINKPHP/COMMON/FUNCTIONS.PHP第869行,将unserialize($_COOKIE[$name])改为unserialize(stripslashes($_COOKIE[$name])),删除~runtime.php,即可搞定。
APPNAME_think_language
s%3A5%3A%22zh-cn%22%3B
在核心缓存文件中 unserialize($_cookie[$name]) 处报错,也就是调试器报的错。
网上查了一下,应该是cookie内容不合法的问题,在unserialize反序列化cookie时用stripslashes处理一下即可解决。
现在问题是:直接修改缓存runtime文件debug就不会报错了,但是此方法是不可行的,要修改缓存文件生成器才能解决问题。
跟踪了一下,只要修改 THINKPHP/COMMON/FUNCTIONS.PHP第869行,将unserialize($_COOKIE[$name])改为unserialize(stripslashes($_COOKIE[$name])),删除~runtime.php,即可搞定。
作者: cuizhen7 发布时间: 2010-08-24
不错,如果多语言的网站是用linux的主机话,会出现?l='zh-tw',不能转换的问题,用楼主的方法,可能解决了,谢谢!
作者: winds_ha 发布时间: 2011-04-03
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28