PHPCMS 错误日志 Only variables should be passed by ...
2015-05-29 00:00
597 查看
有几个网站是PHPCMS V9做的,但这两天发现一个问题,PHPCMS 的错误日志超过了20M ,后台报警,然后我看了下错误日志,其中两万多行都是一个错误,错误信息如下:
然后查找 根源 caches/caches_model/caches_data/content_output.class.php 的第79行
PHP extract() 函数从数组中把变量导入到当前的符号表中。
对于数组中的每个元素,键名用于变量名,键值用于变量值。
于是我怀疑extract()的参数不是数组 造成的。
由于报错的这个位置试过缓存文件,找到源文件的位置为
网站根目录/phpcms/modules/content/fields/box/output.inc.php
修改文件里面的
为:
这样,先判断下extract()的参数是不是一个数组,如果是数组的话,才执行extract(),这样就避免错误,
然后在PHPCMS 更新缓存,这样后面就不会报错了
1 | <? php exit;?>11-03 10:24:46 | 2048 | Only variables should be passed by reference | caches/caches_model/caches_data/content_output.class.php | 79 |
1 | extract(string2array( $this ->fields[ $field ][ 'setting' ])); |
对于数组中的每个元素,键名用于变量名,键值用于变量值。
于是我怀疑extract()的参数不是数组 造成的。
由于报错的这个位置试过缓存文件,找到源文件的位置为
网站根目录/phpcms/modules/content/fields/box/output.inc.php
修改文件里面的
1 | extract(string2array( $this ->fields[ $field ][ 'setting' ])); |
1 | $setting = string2array( $this ->fields[ $field ][ 'setting' ]); is_array ( $setting ) && extract( $setting ); |
然后在PHPCMS 更新缓存,这样后面就不会报错了
相关文章推荐
- 在Intellij IDEA或者PhpStorm下用X-debug调试PHP
- QQ聊天机器人for PHP版 (登录,收、发消息)
- setcookie,getcookie,delcookie,setpostBgPic
- PHPCMS如何实现后台访问限制?
- phpcms v9 自定义伪静态的分页函数
- Win2008 R2 IIS7.5+PHP5(FastCGI)+MySQL5环境搭建教程
- phpcms v9二级栏目生成到根目录后三级栏目无法访问的解决办法
- php 与 C# 之间的DES加解密
- 在PHP中使用Mockery进行测试驱动开发(TDD) - 上
- PHP 错误与异常 笔记与总结(9)自定义错误处理器
- PHP实现4种排序算法
- itms-services协议:跳转网页部署及PHP动态生成 iOS渠道包IPA一键安装之plist地址
- H.264 RTP payload 格式
- 走入PHP-declare、ticks、encoding、include
- 走入PHP-变量、运算符
- 新手使用thinkphp时打开debug出现的问题。
- 走入PHP-数据类型和字符串语法
- PHP读取CURL模拟登录时生成Cookie文件
- PHP Pthread多线程 操作
- PHP5.3以上版本使用pthreads PHP扩展真正支持多线程