好多网友反映织梦自带的留言模块经常被注入垃圾留言,好多还是英文的,有些留言虽然不是垃圾,但是其留的个人主页多是一些购物网站的链接。久久电影吧 也深受其害,而在管理后台也没发现有批量删除留言的工具,只能一个一个的删除,很是麻烦,在官方论坛搜了一下,也没发现官方给出很好的解决方案。舍弃留言模块,对用户体验不好。最近笔者经过努力,发现了一个解决此问题的办法,希望对有同样困惑的网友能有帮助。
据最近观察,几天后不审核的留言,自动不显示。但这些数据还存放在数据库里,占据着宝贵的数据库资源。如何实现这些垃圾数据的批量删除呢?
首先在前台设置成留言需要审核后才能发布,平时有好的留言及时审核,不好的坚决不通过。
网站后台垃圾留言页面
与后台页面对应的未被审核的mysql数据库后台页面(图1)
下面的方法是通过phpMyAdmin工具直接对织梦数据库里的数据表进行操作,为了安全起见,最好先通过后台的备份工具将数据库的所有表或部分表做一下备份,一旦误伤,也可以很快恢复。(具体方法详见织梦官网或百度一下)
久久电影吧(http://www.film-8.com)用的是DedeCMSV57_UTF8_SP1代码(以下基于此版本的SQL代码经过测试能顺利执行,gbk的是否能成功执行还有待验证!)。
通过phpMyAdmin(2.6.4-pl4)工具管理mysql数据库,实现垃圾数据的批量删除和更新。大家一定弄明白SQL语句的意义,再进行相关操作,否则容易造成数据库数据的丢失。首先您应有数据库的管理权限。本文直接通过phpMyAdmin管理的mysql数据库(本例以MySQL 5.0.27为测试数据库),以下代码都是在这个工具里测试的,织梦后台也有一个sql工具,有兴趣的可以试一下,代码是否也能成功执行。
利用dede_guestbook字段ischeck(审核开关,1通过审核,0未通过审核)
首先看一下dede_guestbook的数据库结构,了解这个后下面的命令出错的几率小点。
dede_guestbook的数据库结构
怎样查看未被审核的垃圾数据?
SELECT title,uname,ip,homepage,dtime,ischeck,msg FROM `dede_guestbook` WHERE ischeck=0 如图1
查看某一IP地址(如:112.248.60.26.)的所有留言:
Select title,uname,ip,homepage,dtime,ischeck,msg FROM `dede_guestbook` WHERE ip='112.248.60.26'
删除所有未被审核的垃圾留言。
Delete from dede_guestbook where ischeck=0
执行删除命令时出现的对话框
删除后已查不到原记录
更新已审核的所有留言主页链接为http://www.film-8.com
update `dede_guestbook` set homepage = 'www.film-8.com' WHERE ischeck=1
更新某一IP(如:112.248.60.26.)的所有留言主页链接为http://www.film-8.com
update `dede_guestbook` set homepage = 'www.film-8.com' WHERE ip=’ 112.248.60.26’ (文:大鹏展翅,作者系久久电影吧 站长,原文链接:http://www.wanminw.com/zztd/show.asp?id=31)
|