| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 915 人关注过本帖
标题:请指导网站cokkie和ip解决重复投票的方案
只看楼主 加入收藏
dawur
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2007-11-30
收藏
 问题点数:0 回复次数:0 
请指导网站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"
%>
搜索更多相关主题的帖子: cokkie 数据库 方案 Cookies 
2007-11-30 15:00
快速回复:请指导网站cokkie和ip解决重复投票的方案
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.019122 second(s), 10 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved