dedecms升级到V5.7 SP1后广告不显示的解决方法

2017-03-27 20:28:09 dedecms
最近把织梦dedecms更新到V5.7 SP1版本,结果发现谷歌联盟和百度联盟的广告都不能显示了。对比了一下之前版本的首页源码,发现更新后的系统中,广告代码双引号前均多了一个反斜杠,然后通过以下步骤解决这个问题。

打开 /dede/ad_add.php 文件
找到(30行左右)
if($normbody['style']=='code')
{
$normbody = addslashes($normbody['htmlcode']);
}

修改为
if($normbody['style']=='code')
{
$normbody = $normbody['htmlcode'];
}


解析:
addslashes函数会在指定的预定义字符前添加反斜杠,主要是对一些特殊字符进行转义。
修改完后保存,然后上传到服务器,再添加的广告就能正常显示了。
因为反斜杠是在广告代码插入到数据库之前添加的,所以数据库中之前添加的广告代码不会变(反斜杠依然存在)。只要把之前添加的广告都删除,然后重新添加就可以了。当然,你也可以直接在数据库中手工把每个广告的反斜杠都去掉。