DedecmsV5.7 SP1广告不能显示的问题
在将网站更新至DedecmsV5.7 SP1版本后,许多站长发现谷歌联盟和百度联盟的广告无法正常显示,经过对比之前版本的首页源码,发现广告代码双引号前多了一个反斜杠“”,这一现象导致广告代码在浏览器中被错误解析,从而无法显示。
问题原因分析
通过排查,问题出在ad_add.php
文件的第30行:
if($normbody['style']=='code') { $normbody = addslashes($normbody['htmlcode']); }
addslashes
函数会在指定的预定义字符前添加反斜杠,主要是对特殊字符进行转义,这会导致广告代码中的双引号被转义,从而无法正常显示。
解决方案
1、修改PHP代码:找到ad_add.php
文件第30行,将原来的代码改为如下:
“`php
if($normbody[‘style’]==’code’) { $normbody = $normbody[‘htmlcode’]; }
“`
这样就不会对广告代码进行转义处理。
2、重新添加广告:由于之前添加的广告已经带有反斜杠,需要删除这些广告并重新添加,也可以直接在数据库中手动去掉每个广告代码中的反斜杠。
3、上传到服务器:修改完成后保存文件,然后上传到服务器,再添加的广告就能正常显示了。
步骤 | 操作内容 |
1 | 找到ad_add.php 文件第30行 |
2 | 将代码if($normbody['style']=='code') { $normbody = addslashes($normbody['htmlcode']); } 改为if($normbody['style']=='code') { $normbody = $normbody['htmlcode']; } |
3 | 删除之前添加的广告,并重新添加 |
4 | 上传文件到服务器 |
FAQs
Q1: 为什么更新到DedecmsV5.7 SP1后广告代码会多一个反斜杠?
A1: 这是因为在新版本的系统中,ad_add.php
文件中使用了addslashes
函数,该函数会在指定的预定义字符前添加反斜杠,以对特殊字符进行转义,广告代码中的双引号会被转义,导致无法正常显示。
Q2: 修改代码后是否需要重新添加所有广告?
A2: 是的,因为反斜杠是在广告代码插入到数据库之前添加的,所以数据库中之前添加的广告代码不会变(反斜杠依然存在),为了确保广告能正常显示,建议删除之前添加的广告,然后重新添加,你也可以直接在数据库中手工把每个广告的反斜杠都去掉。
解决Dedecms V5.7 SP1广告不能显示的问题
1. 问题
在Dedecms V5.7 SP1版本中,用户反馈广告模块无法正常显示,导致广告位空白或显示错误。
2. 常见原因分析
1、广告代码错误:广告代码格式不正确或与广告位配置不匹配。
2、模板问题:模板中广告调用代码错误或与广告位配置不匹配。
3、插件冲突:其他插件与广告插件冲突,导致广告无法显示。
4、数据库错误:数据库中相关广告信息或配置丢失或损坏。
5、浏览器缓存:浏览器缓存可能导致广告无法正确加载。
3. 解决步骤
步骤一:检查广告代码
确认广告代码是否正确,检查是否有拼写错误或格式问题。
确认广告代码是否与广告位配置相匹配。
步骤二:检查模板代码
打开模板文件,检查广告调用代码是否正确。
确认广告调用代码是否与广告位配置一致。
步骤三:排查插件冲突
关闭其他插件,逐个测试是否为插件冲突。
如果发现插件冲突,尝试更新或卸载冲突插件。
步骤四:检查数据库
登录后台,检查数据库中广告信息是否完整。
如果发现广告信息丢失或损坏,尝试重新导入广告数据。
步骤五:清除浏览器缓存
清除浏览器缓存,重启浏览器尝试重新加载广告。
4. 预防措施
定期检查广告代码和模板代码,确保正确无误。
及时更新插件,避免插件冲突。
定期备份数据库,防止数据丢失。
5. 联系技术支持
如果以上步骤无法解决问题,请联系Dedecms官方技术支持寻求帮助。
原创文章,作者:未希,如若转载,请注明出处:https://www.kdun.com/ask/1168056.html
本网站发布或转载的文章及图片均来自网络,其原创性以及文中表达的观点和判断不代表本网站。如有问题,请联系客服处理。
发表回复