DEDECMS会员系统防止恶意注册及快速删除垃圾会员及文章的方法
如遇蓝奏网盘打不开lanzous替换成lanzoux尝试!
现在网上有一大堆所谓的营销软件,会自动搜索并注册你的网站会有,然后发布垃圾信息,即使你使用了邮箱验证也很难避免,因为对方邮箱也是自动注册的也是真实的,其注册与发布速度非常惊人,可能一夜之间你的网站就被发布几百上千篇垃圾文章,因此我们需要防范这种情况出现。
以下是测试在最新的Dedecms5.7上成功的防止恶意注册的方法:
防止恶意注册
打开/member/reg_new.php,
找到
if($dopost==’regbase’)
{
在其下添加如下代码:
if($reg_ha != ‘奔牛网’)
{
ShowMsg(‘请正确输入本网站名,本网站名为奔牛网‘,’-1′);
exit();
}
然后打开/member/templets/reg-new.htm,在
上添加:
随机问题:
*
本网站名为:奔牛网(请将奔牛网输入到左边文本框中)
防范措施做完,接下来开始清理被批量注册的垃圾会员和垃圾文章
批量删除垃圾会员
批量删除垃圾会员的办法,可以通过dedecms后台自带的sql命令行工具执行SQL命令即可,方法如下:
后台-系统-sql命令行工具:
如果是要删除管理员以外的其他所有会员,则SQL命令如下:
delete from dede_member where not mid=’1′
前提是你的管理员id为1,一般默认情况下id为1的即为管理员用户,所以上述代码保留了mid为为1的用户。另外,如果你需要删除某一范围的会员,则代码如下:
delete from dede_member where mid between 2 and 10000
命令很简单一看就懂,删除mid从2到10000的会员。这里不多列举了,你可以根据自己的需要进行条件筛选删除。
批量删除垃圾文章
批量删除垃圾文章的方法跟批量删除垃圾会员的方法差不多,通过执行SQL命令即可,一般地会员投稿后默认为待审核状态,因此,如果需要删除这些垃圾文章,我们只需要通过执行SQL命令来删除待审核的文章就行,SQL命令如下:
delete from dede_archives where arcrank=-1
提示运行成功后,就可以把垃圾会员及其发布的垃圾文章快速删除了
DEDE站点一大,文章一多,就会发现前期没规划好,没进行分表,造成数据库庞大臃肿,执行效率低了。这个时候,其实还可以补救,就是对频道进行分表操作,将你网站的一个个频道新建一个个模型,用来对应不同的数据库表进行分表操作。这里涉及到数据库操作,因此需要备份下数据库必加保险。
首先在织梦后台建立新内容模型 ,(核心-频道模型-内容模型管理-然后复制文章模型或者你要用的某个模型)再用以下的MYSQL 语句 将以前的栏目文章转入新模型,
假设以前的栏目为文章模型,栏目ID 为 31, 新建模型ID为7(默认的文章模型为1,模型ID可以在内容模型管理最左侧看到),使用新建模型建立的新文章栏目ID为52,数据库中新模型附加表为 dede_addonarticle17
执行以下操作
1、将原模型下的ID31的栏目内的全部内容转移到新模型dede_addonarticle17
INSERT INTO dede_addonarticle17(aid,typeid,redirecturl,userip,body) SELECT aid,typeid,redirecturl,userip,body FROM dede_addonarticle where dede_addonarticle.typeid=31
2、删除原栏目下的全部内容(已经复制一份到新模型下了)
DELETE FROM `dede_addonarticle` WHERE typeid=31
3、将关联模型的地方全部改写一遍,将原来定义栏目ID31对应的频道模型全部由1改成7
update dede_arctiny set channel=7 where typeid=31
update dede_archives set channel=7 where typeid=31
update dede_arctype set channeltype=7 where id=31
4、修改关联栏目,将原来调用31号栏目的地方,全部改为52号栏目
update dede_addonarticle17 set typeid=52 where typeid=31
update dede_archives set typeid=52 where typeid=31
update dede_arctiny set typeid=52 where typeid=31
5、删除旧栏目
DELETE FROM dede_arctype WHERE id=31