日期:2011-09-20  浏览次数:20910 次

这个是投票前一页代码。在此页点击投票。
<%
Response.Cookies("cook")="yes"
%>
以下是投票页代码
<%
if Request.Cookies("cook")<>"yes" then
response.write "<script language='javascript'>alert('cookies没开启无法进行投票');location.href='"&url&"';</script>"
else
method = request.servervariables("REQUEST_METHOD")
if method <>"POST" then
response.write "<script language='javascript'>alert('请通过正常方式投票');location.href='"&url&"';</script>"
else
url = request.ServerVariables("HTTP_REFERER")'获取上页地址
Dim regEx, retVal         
  Set regEx = New RegExp
  regEx.Pattern = "^http://([^/]*.)?chinabbs.com/[\s\S]*$"
  regEx.IgnoreCase = True
  retVal = regEx.Test(url)
  if retVal then
id = request.querystring("id")'获取用户id
userip = Request.ServerVariables("REMOTE_ADDR")'记录投票用户ip
set rs=server.createobject("adodb.recordset")'建立记录集  
sql = "select * from vote where userip='"&userip&"'and DateDiff('h',datestr,now)<3"
rs.open sql,conn,2,2
if not(rs.bof and rs.eof) then
response.write "<script language='javascript'>"
response.write "alert('对不起!每隔3个小时才能再次投票!');"
Response.Write "javascript:history.back(-1);</script>"
else'否则数据库没有当前用户ip并且投票时间未超过3小时的话
rs.close
if request.cookies("i")<>1 then
if session("i")<>1 then
datestr=now()'把获取当前系统日期值付给datestr变量
sessionid = session.sessionid
sql = "insert into vote(username,userip,datestr,sessionid)values('"&id&"','"&userip&"','"&datestr&"','"&sessionid&"')"
conn.execute sql
sql = "update proid set hits = hits + 1 where userid='"&id&"'"
conn.execute sql
session("i")=1
response.Cookies("i")=1
Response.Cookies("i").expires=DateAdd("h",3,now())
end if
end if
response.write "<script language='javascript'>"
response.write "alert('恭喜你!投票成功!');location.href='"&url&"';</script>"
end if
else
response.write "<script language='javascript'>alert('请通过正常方式投票');location.href='"&url&"';</script>"
end if
end if
end if
%>
Post方式传递参数,站内投票,ip记录判断,session判断,cookies判断。
如果重启猫,改变ip,没有关闭浏览器。那么session判断不让投票。
如果重启猫,改变ip,关闭浏览器,禁用cookies,那么不让投票。
如果重启猫,改变ip,关闭浏览器,删除cookies,打开浏览器,会是什么结果呢??????怎么办呀。。。。。。。。。