最近网站上总是有人发垃圾信息,没网上找了下防止的方法,觉得下面这个还不错,贴出来

将以下代码保存为_common.asp文件:

<script language="VBScript" runAt="server">
Function getcode()
Dim QuesionNum
QuesionNum=10 '问题的总数,如要添加问题,请先修改这个数值
Dim CodeIndex
CodeIndex=0
Dim QuesionArray(100)
Dim AnswerArray(100)
QuesionArray(0)="= 11 + 2" '问题列表及答案,可自行修改
AnswerArray(0)="13"
QuesionArray(1)="= 2 + 2"
AnswerArray(1)="4"
QuesionArray(2)="= 3 + 4"
AnswerArray(2)="7"
QuesionArray(3)="= 2 + 4"
AnswerArray(3)="6"
QuesionArray(4)="= 6 + 2"
AnswerArray(4)="8"
QuesionArray(5)="= 6 + 2"
AnswerArray(5)="8"
QuesionArray(6)="= 61 + 2"
AnswerArray(6)="63"
QuesionArray(7)="= 67 + 2"
AnswerArray(7)="69"
QuesionArray(8)="= 16 + 2"
AnswerArray(8)="18"
QuesionArray(9)="= 26 + 2"
AnswerArray(9)="28"
QuesionArray(10)="= 14 + 2"
AnswerArray(10)="16"
Randomize
CodeIndex = Int((QuesionNum * Rnd) + 0)
Session("lbsSecurityCode") = AnswerArray(CodeIndex)
getcode = QuesionArray(CodeIndex)
End Function
</script>

在需要验证的页面的表单中加上:

        <input name='answer' type='text' value="" size='5'>
                      <%=getcode()%>



 

显示效果为:

查看更多精彩图片

最好在提交页面加上判断:

<%

If Trim(Request.Form("answer"))=Empty Or Trim(Session("lbsSecurityCode"))<>Trim(Request.Form("answer")) Then

%>
<script language='javascript'>
alert("请注意正确输入验证码");
history.back(-1);

</script>
<%
response.end