[转贴]提供一个防暴力注册的修改方法!
下面这个方法用于动网论坛,版本不同的时候,语言有所变化,如果实在不懂,请与小轻联系
第一步:
将一下代码保存为asp文件,文件名为:Checkyuckj.asp
<%
Dim QuesionArray(100)
Dim AnswerArray(100)
Dim QuesionNum
QuesionNum=10 '请在这里正确设置问题的总数
Function Checkyuckj(Answer)
Dim TrueAnswer
If Session("yuckjID")="" Then
Checkyuckj=False
Exit Function
End If
TrueAnswer=CStr(AnswerArray(Session("yuckjID")))
If Answer=TrueAnswer Then
Checkyuckj=true
End If
End Function
QuesionArray(0)="请问本网站的站名是?(提示:书酒论坛”)"
AnswerArray(0)="书酒论坛"
QuesionArray(1)="请问本网站的网址是?(提示:www.shujiu.com)"
AnswerArray(1)="www.shujiu.com"
QuesionArray(2)="“天苍苍,野茫茫”的下句是什么?(提示:风吹草低现牛羊)"
AnswerArray(2)="风吹草低现牛羊"
QuesionArray(3)="“惟见长江天际流”的上句是什么?(提示:孤帆远影碧空尽)"
AnswerArray(3)="孤帆远影碧空尽"
QuesionArray(4)="对联诗钟的上句有几个字?(提示:七字)"
AnswerArray(4)="七字"
QuesionArray(5)="书酒人生邀月醉,请注明此句的平仄(提示:平仄平平平仄仄)"
AnswerArray(5)="平仄平平平仄仄"
QuesionArray(6)="你是否为机器人?(提示:不是)"
AnswerArray(6)="不是"
QuesionArray(7)="钓鱼岛是不是中国的?(提示:是)"
AnswerArray(7)="是"
QuesionArray(8)="台湾是不是中国的一个省(提示:是)"
AnswerArray(8)="是"
QuesionArray(9)="你是否会坚决地抵制日货(提示:是)"
AnswerArray(9)="是"
%>
第二步:
1. 进入后台,风格界面模板总管理,page_login,template.html(13)
找到:
<TR>
<TD class=tablebody1><B>问题答案</B>:<BR>忘记密码的提示问题答案,用于取回论坛密码</TD>
<TD class=tablebody1>
<INPUT type=text size=30 name=answer>
</TD></TR>
下面添加:
<TR>
<TD class=tablebody1><div style="color:red">为防止恶意注册,请回答以下问题:</div>
<b>{$yuckjQuesion}<b>
</TD>
<TD class=tablebody1><INPUT size=30 name=yuckjanswer></TD>
</TR>
2. 打开reg.asp,找到
<!--#include file="inc/md5.asp"-->
在其下添加
<!--#include file="inc/Checkyuckj.asp"-->
找到
TempLateStr=Replace(TempLateStr,"{$user_belief}",Selectinfo(5))
在其下添加
Randomize
Session("yuckjID")=int(Rnd*QuesionNum)
TempLateStr=Replace(TempLateStr,"{$yuckjQuesion}", QuesionArray(Session("yuckjID")))
找到
Else
quesion=Request.form("quesion")
End If
在其下添加
If Request.Form("yuckjAnswer")="" Then
ErrCodes=ErrCodes+"<li>"+"请填写防恶意注册问题!"
End If
If Not Checkyuckj(Request.Form("yuckjAnswer")) Then
ErrCodes=ErrCodes+"<li>"+ "防恶意注册问题回答错误,请返回重试。"
End If
把 刚才保存的Checkyuckj.asp 放到论坛inc/目录下
OK! 恭喜你,从此,你就永远的告别机器人的暴力注册了和乱发广告的困扰了!一共有十个问题,每次进入提示的问题都不一样的,小轻早上百度找来的方法,呵,自己改了问题,有一些问题实在太爽快了,哈哈,钓鱼台是不是中国的?一定要回答是,才能完成注册,哈哈啊
我们的已经解决了这个问题,现在真是无忧无虑啊!希望大家来一起分享!
-------------------------------------------------------------------------
下面这个方法,用于DZ论坛
DZ防暴力注册(必须填写当天日期)
打开 register.php
查找:$discuz_action = 5;
下面加入:
$nowday1 = gmdate("d", $timestamp + $timeoffset * 3600);
$nowday2 = gmdate("m月d日", $timestamp + $timeoffset * 3600);
继续查找:
$alipay = trim($alipay);
下面加入:
if($nowday != $nowday1) {showmessage("书酒论坛提示:日期没输正确.你不会忘了今天是几号了吧?","javascript:history.back()");}
再打开 templates\default\register.htm
查找:
<th><label for="password">{lang password} *</label></td>
<td>
<input type="password" name="password" size="25" id="password" tabindex="4" />
<span id="checkpassword"> </span>
</tr>)
下面加入:
<tr>
<td class="altbg1" width="21%"><b>防暴力注册问题:</b><br>今天的日期是<b><font color="#FF0000"> $nowday2 </font></b></td>
<td class="altbg2"><input type="text" name="nowday" size="4" maxlength="4"> 书酒论坛提示:请输入 <font color="#FF0000"><B>$nowday1</B></font> 到左边文本框中吧!</b></td></tr>
-----------------------------------------------------------------------------
填日期的这个方法太流行了,机器人已会填了,我们把
$nowday1 = gmdate("d", $timestamp + $timeoffset * 3600);
$nowday2 = gmdate("m月d日", $timestamp + $timeoffset * 3600);
改为
$nowday1 = gmdate(答案);
$nowday2 = gmdate(问题);
就行了。。。
------------------------------------------------
本贴关键词:防注册,防暴力广告,防机器人,防广告,动网防广告注册,动网防注册,DZ防注册
[[i] 本帖最后由 小轻 于 2009-1-8 22:29 编辑 [/i]]
|