近数月来我管理的佛教论坛经常被一些人用论坛小助手等软件恶意注册发垃圾帖子,管理员防不胜防。今晚我特为论坛增加了注册问题验证,凡不能回答相关问题者即不能注册,也即不能发帖子。所设问题是随机出现(所设问题及答案随各人所好)。
办法如下:
1.
最高管理员进入后台,点击风格界面模板总管理,page_login,template.html(13) 找到
<tr>
<td class="tablebody1"><b>密码问题</b>:<br />忘记密码的提示问题</td>
<td class="tablebody1">
<input name="quesion" type="text" size="30" />
</td></tr>
在上面此段代码前面添加如下代码
<TR>
<TD class=tablebody1>
<div class="tablebody1"><b>防恶意注册问题回答:</b></div>
<div style="color:red";font-size=18px">{$EvilQuesion}</div>
</TD>
<TD class=tablebody1><INPUT size=30 name=evilanswer> </TD>
</TR>
2. 打开reg.asp,找到
<!--#include file="inc/md5.asp"-->
在其下添加
<!--#include file="inc/CheckEvil.asp"-->
找到163行
TempLateStr=Replace(TempLateStr,"{$user_belief}",Selectinfo(5))
在其下添加
Randomize
Session("EvilID")=int(Rnd*QuesionNum)
TempLateStr=Replace(TempLateStr,"{$EvilQuesion}", QuesionArray(Session("EvilID")))
找到第351行
Else
quesion=Request.form("quesion")
End If
在其下添加
If Request.Form("EvilAnswer")="" Then
ErrCodes=ErrCodes+"<li>"+"请填写防恶意注册问题!"
End If
If Not CheckEvil(Request.Form("EvilAnswer")) Then
ErrCodes=ErrCodes+"<li>"+ "防恶意注册问题回答错误,请返回重试。"
End If
3. 增加一个新文件CheckEvil.asp,填写如下代码,并上传到论坛inc目录下,即
/inc/CheckEvil.asp。
<%
Dim QuesionArray(100)
Dim AnswerArray(100)
Dim QuesionNum
QuesionNum=5 '请在这里正确设置问题的总数
Function CheckEvil(Answer)
Dim TrueAnswer
If Session("EvilID")="" Then
CheckEvil=False
Exit Function
End If
TrueAnswer=CStr(AnswerArray(Session("EvilID")))
If Answer=TrueAnswer Then
CheckEvil=true
End If
End Function
QuesionArray(0)="佛教三宝是?(提示:佛法僧)"
AnswerArray(0)="佛法僧"
QuesionArray(1)="四大名山中观音菩萨的道场是?(提示:普陀山)"
AnswerArray(1)="普陀山"
QuesionArray(2)="西方极乐世界教主是?(提示:阿弥陀佛)"
AnswerArray(2)="阿弥陀佛"
QuesionArray(3)="禅宗六祖法号是?(提示:惠能)"
AnswerArray(3)="惠能"
QuesionArray(4)="四大名山中文殊菩萨的道场是?(提示:五台山)"
AnswerArray(4)="五台山"
%>