批量删除垃圾文章和提问

这几天很头疼的一件事就是,wc3.1.9被人灌进去太多的垃圾文章和提问。
一共10000多条。
QQ截图20180731170625.png

后台管理里批量删除每次只能删除20个。10000/20 = 500 我们得操作500次
直接删除数据库里的数据,如果删除不恰当会造成很多问题。
所以我从程序里出发,找到删除代码,然后自己找到最大的垃圾文章编号和最小的。
文章和问题的删除代码都在/app/admin/ajax.php里
 
我们可以搜索关键字 del'  后面的单引号别忘记了,否则会搜出很多。
搜到
 case 'del':
foreach ($_POST['article_ids'] AS $article_id)
{
$this->model('article')->remove_article($article_id);
}

H::ajax_json_output(AWS_APP::RSM(null, 1, null));
break;
自己备份下代码
改成
case 'del':
for($i=最大垃圾文章ID;$i>最小垃圾文章ID;$i--)
{
$this->model('article')->remove_article($i);
}

H::ajax_json_output(AWS_APP::RSM(null, 1, null));
break;
然后在管理端点击删除按钮。 等一会就可以清除这些垃圾文章了。
删除完记得把代码恢复。
 
同理 删除垃圾问题
搜索 remove' 找到
case 'remove':
foreach ($_POST['question_ids'] AS $question_id)
{
$this->model('question')->remove_question($question_id);
}

H::ajax_json_output(AWS_APP::RSM(null, 1, null));
break;
改成
case 'remove':
for($i=最大垃圾问题ID;$i>=最小垃圾问题ID;$i--)
{
$this->model('question')->remove_question($i);
}

H::ajax_json_output(AWS_APP::RSM(null, 1, null));
break;

6 个评论

谢谢题主的分享,还有一个开启发帖验证码的设置,可以了解一下,可以限定频率,至少可以将防止一部分机器人行为
的确是个头痛的问题,不停注册换号的话也防不住,只能先临时开启审核了
三叔

三叔 回复 fanta

一直开着验证码,没啥用
感谢分享
可以考虑集成极验,比图片验证码好一点
极验真心不错

要回复文章请先登录注册