怎么控制同一IP重复投票的asp代码

来源:百度知道 编辑:UC知道 时间:2024/05/30 05:29:25
我做了一个简单的投票系统~asp+access的!
我想控制一个ip在一天内只能头一票~如果这ip这一天之内已经投过票`
提示投票不成功~不用去计较是在网吧多少台机~或者活动IP什么的!
主要是控制一个IP一天只能投一票~

我现在的代码如下:
set rs=server.CreateObject("adodb.recordset")
sql="select * from Enterprise where EnId="&request("ID")
rs.open sql,conn,1,3
EnPoint=rs("EnPoint")+1
sql="update [Enterprise] set EnPoint="&EnPoint&" where EnId="&request("ID")
conn.execute(sql)
set conn=nothing

请详细指点一下~~谢谢~~

'请在数据表里面添加一个列 "投票时间"
sql="select 投票者ip,投票时间 where 投票者ip='"&request("投票者ip")&"'"
rs.open sql,conn,1,1
if year(rs("投票时间"))=year(now()) and month(rs("投票时间"))=month(now()) and day(rs("投票时间"))=day(now()) then '比较同一个ip所有投票的时间年月日是不是和现在的年月日相等,如果相等则报错,如果不相等则执行下一步
response.write"<script>alert('你已经投过票了!');history.go(-1);</script>"
else
这里写你的更新语句或者其它的操作
response.write"<script>alert('投票成功');<script>"
end if

具体不写了,给你点思路
request.servervariables("remote_ADDR")可以得到无代理情况下的真实IP
request.servervariables("http_X_forwarded_FOR"):如果透明代理,得到真实IP,如果不透明代理,得到代理IP或unknown
以上,可以判断来客的IP了
可以建个表,字段:ID ,点击(默认0),IP, 时间(默认now())
行了,时间计算会吧,IP作主键查询,ID方便以后其他功能,
然后就是你写的代码了

希望对你有帮助,吃饭去了