请指导网站cokkie和ip解决重复投票的方案
以下是我的代码,有些问题,请高人指点,希望能给我修改我的代码,万分感谢!<!--#include file="config.asp" -->
<!--
在投票的动作页(添加到数据库那页)添加以下代码(写COOKIES)
-->
<% response.Cookies("olduser") = now() %>
<!--
在投票的填写页或者投票的动作页的开头添加以下代码
当已投票用户访问此页面时,就弹出提示,并自动跳转到查看结果页
-->
<% if request.Cookies("olduser") <>"" then %>
<script>
alert("您在 <%= request.Cookies("olduser") %> 已经参与过投票\n现转至查看投票结果页面");
window.location.href="show.asp" //跳转到查看投票结果的网页
</script>
<% end if %>
<%
'变量
ok=false
IP=Request.ServerVariables("REMOTE_ADDR")
code=request("code")
'数据库连接
SET con=Server.Createobject("ADODB.CONNECTION")
DSN="DRIVER={Microsoft Access Driver (*.mdb)}; "
DSN=DSN & "DBQ=" & server.mappath(DBPath)
con.Open DSN
'检查IP,避免重复投票
c_ip=Request.ServerVariables("Remote_Addr")
sql = "select * from IP where IP="+sqlstr(IP)
Set rs = Server.CreateObject("ADODB.Recordset")
rs.CursorType=adOpenDynamic
rs.LockType=adLockPessimistic
rs.Open sql,con
if rs.BOF or rs.EOF then '第一次访问
rs.Addnew
rs("IP")=IP
rs("count")=1
rs("lastin")=now()
else
if DateDiff("n",rs("lastin"),now())>TimeBetween then '30 minute
ok=true
c=rs("count")+1
rs("lastin")=now()
rs("count")=c
end if
end if
rs.update
rs.close
'add total count
if ok then
sql = "select count from info where code="+CStr(code)
Set rs = Server.CreateObject("ADODB.Recordset")
rs.CursorType=adOpenDynamic
rs.LockType=adLockPessimistic
rs.Open sql,con
c=rs("count")
c=c+1
rs("count")=c
rs.update
rs.close
end if
con.close
response.redirect "show.asp"
%>