qxyhuiyuan 发表于 2020-6-25 16:13:21

【aixiagame首发】discuz!x3.4全站清空短消息的最新方法

上次我们说到那个防止被刷取回密码邮箱的问题,这回我们看这个短消息问题。
你是否遇到过论坛内马甲成员大量私发广告短消息的困惑?比如下面这个马甲:
http://www.discuz.net/data/attachment/forum/202006/14/004716igmtf482phzldphh.jpg.thumb.jpg
http://www.discuz.net/data/attachment/forum/202006/14/004715apvomjhafzt3oct5.jpg.thumb.jpg
http://www.discuz.net/data/attachment/forum/202006/14/004717ua85zk6r07foman9.jpg.thumb.jpg
发贴子你有审核功能,但是短消息没有,而且后台不方便批量删除,你总不能全站不让发短消息吧,这不现实,毕竟连自己都要给成员发短消息,所以呢?我们可以隔一段时间来一次全站清空短消息,降低无用数据占有量。

那么问题来了,我们如何对discuz!论坛进行全站清空短消息呢?这里以Discuz! X3.4 R20191201 UTF-8版本为例:
有两种方法:

第一种方法:论坛后台SQL语句。
首先在你的文件管理内,找到论坛配置文件config_global.php,我们点编辑
http://www.discuz.net/data/attachment/forum/202006/14/005929m9gv49x4vn9v9xqy.jpg.thumb.jpg http://www.discuz.net/data/attachment/forum/202006/14/010232zrj5rmzg1btknukg.jpg.thumb.jpg
翻到最下面和后台管理员ip检测靠在一起的配置代码
$_config这个后面把0改为1开启论坛允许使用SQL语句。
做好了这一点后,我们就可以在后台-站长-数据库-升级,这个里面输入一下SQL语句运行:
DELETE FROM `pre_ucenter_pm_indexes` WHERE 1=1 ;
DELETE FROM `pre_ucenter_pm_lists` WHERE 1=1 ;
DELETE FROM `pre_ucenter_pm_members` WHERE 1=1 ;
DELETE FROM `pre_ucenter_pm_messages_0` WHERE 1=1 ;
DELETE FROM `pre_ucenter_pm_messages_1` WHERE 1=1 ;
DELETE FROM `pre_ucenter_pm_messages_2` WHERE 1=1 ;
DELETE FROM `pre_ucenter_pm_messages_3` WHERE 1=1 ;
DELETE FROM `pre_ucenter_pm_messages_4` WHERE 1=1 ;
DELETE FROM `pre_ucenter_pm_messages_5` WHERE 1=1 ;
DELETE FROM `pre_ucenter_pm_messages_6` WHERE 1=1 ;
DELETE FROM `pre_ucenter_pm_messages_7` WHERE 1=1 ;
DELETE FROM `pre_ucenter_pm_messages_8` WHERE 1=1 ;
DELETE FROM `pre_ucenter_pm_messages_9` WHERE 1=1 ;
注意:这里要把DELETE FROM `pre_ucenter_pm_indexes` WHERE 1=1 ;这个语句加上,不然你会发现内容清空了但是还会显示有短消息记录。和下面图中13年的方法不一样了!
http://www.discuz.net/data/attachment/forum/202006/14/011055jdhky9gwegzmzbyk.jpg.thumb.jpg
运行后保存,再工具-更新缓存就可以了,最后把$_config恢复默认0
建议用第二种方法迅速稳定。
第一种方法适合新站,数据库内容不多的,如果数据内容多,你会发现非常缓慢,为什么呢?
如图:
http://www.discuz.net/data/attachment/forum/202006/14/011714aehylaajjyvvvyoo.jpg.thumb.jpg

第二种方法:用数据库管理工具直接处理。
delete英文意思是删除,而在SQL语句中只是清空数据表内容意思,不是删除数据表,不懂编程的要注意
http://www.discuz.net/data/attachment/forum/202006/14/013238p5l5ly5px5fhvln4.jpg.thumb.jpg
http://www.discuz.net/data/attachment/forum/202006/14/013239fd333d34drtskoj3.jpg.thumb.jpg
首页我们打开phpmyadmin数据库管理工具,点击自己的数据表,翻到第二页
http://www.discuz.net/data/attachment/forum/202006/14/014100ocywwssvssb8nscw.jpg.thumb.jpg
然后找到并且选中第一步里面的十三个数据表,展开选中页,点击清空不要点删除,点击清空不要点删除,点击清空不要点删除,重要的事情说三遍!
http://www.discuz.net/data/attachment/forum/202006/14/014351uu5yy7w587rg705u.jpg.thumb.jpg
http://www.discuz.net/data/attachment/forum/202006/14/014646g8834zz822c43452.jpg.thumb.jpg
最后点是,提交运行就完成了,到此全站短消息被删除。

如果有什么新方法、好方法,欢迎大家留言,给予遇到的人帮助,先就这样吧,祝大家大吉大利、万事顺心。
页: [1]
查看完整版本: 【aixiagame首发】discuz!x3.4全站清空短消息的最新方法