近數(shù)月來(lái)我管理的佛教論壇經(jīng)常被一些人用論壇小助手等軟件惡意注冊(cè)發(fā)垃圾帖子,管理員防不勝防。今晚我特為論壇增加了注冊(cè)問(wèn)題驗(yàn)證,凡不能回答相關(guān)問(wèn)題者即不能注冊(cè),也即不能發(fā)帖子。所設(shè)問(wèn)題是隨機(jī)出現(xiàn)(所設(shè)問(wèn)題及答案隨各人所好)。
辦法如下:
1.
最高管理員進(jìn)入后臺(tái),點(diǎn)擊風(fēng)格界面模板總管理,page_login,template.html(13) 找到
<tr>
<td class="tablebody1"><b>密碼問(wèn)題</b>:<br />忘記密碼的提示問(wèn)題</td>
<td class="tablebody1">
<input name="quesion" type="text" size="30" />
</td></tr>
在上面此段代碼前面添加如下代碼
<TR>
<TD class=tablebody1>
<div class="tablebody1"><b>防惡意注冊(cè)問(wèn)題回答:</b></div>
<div style="color:red";font-size=18px">{$EvilQuesion}</div>
</TD>
<TD class=tablebody1><INPUT size=30 name=evilanswer> </TD>
</TR>
2. 打開(kāi)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>"+"請(qǐng)?zhí)顚?xiě)防惡意注冊(cè)問(wèn)題!"
End If
If Not CheckEvil(Request.Form("EvilAnswer")) Then
ErrCodes=ErrCodes+"<li>"+ "防惡意注冊(cè)問(wèn)題回答錯(cuò)誤,請(qǐng)返回重試。"
End If
3. 增加一個(gè)新文件CheckEvil.asp,填寫(xiě)如下代碼,并上傳到論壇inc目錄下,即
/inc/CheckEvil.asp。
<%
Dim QuesionArray(100)
Dim AnswerArray(100)
Dim QuesionNum
QuesionNum=5 '請(qǐng)?jiān)谶@里正確設(shè)置問(wèn)題的總數(shù)
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)="四大名山中觀音菩薩的道場(chǎng)是?(提示:普陀山)"
AnswerArray(1)="普陀山"
QuesionArray(2)="西方極樂(lè)世界教主是?(提示:阿彌陀佛)"
AnswerArray(2)="阿彌陀佛"
QuesionArray(3)="禪宗六祖法號(hào)是?(提示:惠能)"
AnswerArray(3)="惠能"
QuesionArray(4)="四大名山中文殊菩薩的道場(chǎng)是?(提示:五臺(tái)山)"
AnswerArray(4)="五臺(tái)山"
%>