当PHPCMS广告模板的配置文件为空的时候,PHP5.4情况下会无法保存配置文件。
提示错误
Cannot use a scalar value as an array
这个原因是
space.php 文件
/**
* 广告模块配置
*/
public function setting() {
if (isset($_POST['dosubmit'])) {
$setting = getcache('poster', 'commons');
if(!is_array($setting)) $setting = array();
$setting[$this->get_siteid()] = $_POST['setting'];
setcache('poster', $setting, 'commons'); //设置缓存
$m_db = pc_base::load_model('module_model'); //调用模块数据模型
$setting = array2string($_POST['setting']);
$m_db->update(array('setting'=>$setting), array('module'=>ROUTE_M)); //将配置信息存入数据表中
showmessage(L('setting_updates_successful'), HTTP_REFERER, '', 'setting');
} else {
@extract($this->M);
include $this->admin_tpl('setting');
}
}
在执行 getcache 方法后得到了一个空值。起码不是一个数据。然后再将返回的$setting 当作数组来看待。肯定是会出错的。
解决办法就是判断一下,是否为数据。如果不是就给也初始一个即可。
顺便也就解决了,广告模板无法上传图片的问题。
提示“poster_edit.tpl.php" line 6 有错误!!