网站建好,推广也做了,垃圾信息太多了,怎么办?
为了“讨好”搜索引擎,很多网站进行seo优化,并利用其余的留言板,评论等, 用程序自动发信息,以增加自己网站的反向链接了。
自己和朋友经营的网站也没有幸免,无奈之余便把留言程序改动了一下。
方法比较简单,就是加一个验证程序了,用图片来显示验证码了。就目前的人工智能来说, 识别图片上的文字还是比较难的。所以加上以后清静了很多,再也不用每日删除垃圾留言了。
这儿我把关键的asp验证程序放上来供大家参考了,请自选调试了,如有问题,请联系我们了。QQ:4399407
getcode.asp 生成验证码的程序
<%
Option Explicit Response.buffer=true stop NumCode Function NumCode() Response.Expires = -1 Response.AddHeader "Pragma","no-cache" Response.AddHeader "cache-ctrol","no-cache" On Error Resume Next Dim zNum,i,j Dim Ados,Ados1 Randomize timer zNum = cint(8999*Rnd+1000) Session("GetCode") = zNum Dim zimg(4),NStr NStr=cstr(zNum) For i=0 To 3 zimg(i)=cint(mid(NStr,i+1,1)) Next Dim Pos Set Ados=Server.CreateObject("Adodb.Stream") Ados.Mode=3 Ados.Type=1 Ados.Open Set Ados1=Server.CreateObject("Adodb.Stream") Ados1.Mode=3 Ados1.Type=1 Ados1.Open Ados.LoadFromFile(Server.mappath("body.Fix")) Ados1.write Ados.read(1280) For i=0 To 3 Ados.Position=(9-zimg(i))*320 Ados1.Position=i*320 Ados1.write ados.read(320) Next Ados.LoadFromFile(Server.mappath("head.fix")) Pos=lenb(Ados.read()) Ados.Position=Pos For i=0 To 9 Step 1 For j=0 To 3 Ados1.Position=i*32+j*320 Ados.Position=Pos+30*j+i*120 Ados.write ados1.read(30) Next Next Response.ContentType = "image/BMP" Ados.Position=0 Response.BinaryWrite Ados.read() Ados.Close:set Ados=nothing Ados1.Close:set Ados1=nothing If Err Then Session("GetCode") = 9999 End Function %>
<% '============================================================================== Option Explicit Response.buffer=true stop NumCode Function NumCode() Response.Expires = -1 Response.AddHeader "Pragma","no-cache" Response.AddHeader "cache-ctrol","no-cache" On Error Resume Next Dim zNum,i,j Dim Ados,Ados1 Randomize timer zNum = cint(8999*Rnd+1000) Session("GetCode") = zNum Dim zimg(4),NStr NStr=cstr(zNum) For i=0 To 3 zimg(i)=cint(mid(NStr,i+1,1)) Next Dim Pos Set Ados=Server.CreateObject("Adodb.Stream") Ados.Mode=3 Ados.Type=1 Ados.Open Set Ados1=Server.CreateObject("Adodb.Stream") Ados1.Mode=3 Ados1.Type=1 Ados1.Open Ados.LoadFromFile(Server.mappath("body.Fix")) Ados1.write Ados.read(1280) For i=0 To 3 Ados.Position=(9-zimg(i))*320 Ados1.Position=i*320 Ados1.write ados.read(320) Next Ados.LoadFromFile(Server.mappath("head.fix")) Pos=lenb(Ados.read()) Ados.Position=Pos For i=0 To 9 Step 1 For j=0 To 3 Ados1.Position=i*32+j*320 Ados.Position=Pos+30*j+i*120 Ados.write ados1.read(30) Next Next Response.ContentType = "image/BMP" Ados.Position=0 Response.BinaryWrite Ados.read() Ados.Close:set Ados=nothing Ados1.Close:set Ados1=nothing If Err Then Session("GetCode") = 9999 End Function %>
在你的留言程序中加入以下代码:
<% = GetCode() %>
验证码两个函数,请自选加入需要验证登录的页面: '验证码调用 Function GetCode() Dim TestObj On Error Resume Next Set TestObj = Server.CreateObject("Adodb.Stream") Set TestObj = Nothing If Err Then Dim TempNum Randomize timer TempNum = cint(8999*Rnd+1000) Session("GetCode") = TempNum GetCode = Session("GetCode") Else GetCode = " " End If End Function
验证码检查,请在提交前 调用 checkcode() 不正确返回 至 index.asp 可自选修改。 function checkcode()
dim VerifyCode VerifyCode = Replace(Trim(Request("VerifyCode")),"'","") if request("VerifyCode") = "" then Response.Write("
") Response.End elseif Session("GetCode") = "9999" then Session("GetCode")="" elseif Session("GetCode") = "" then Response.Write("
") Response.End elseif cstr(Session("GetCode"))<>cstr(Trim(Request("VerifyCode"))) then Response.Write("
") Response.End end if
|