请高手把下面这段ASP代码改成限制同一IP只能投票一次 30

<%ifsql="select*fromvotewhereip='"&Request.ServerVariables("HTTP_X_FORWARDED_FOR")the... <%
if
sql="select * from vote where ip='"&Request.ServerVariables("HTTP_X_FORWARDED_FOR") then
if request("menberid") = "" then
response.Write("<script>alert('要投票必须选择至少一个主题!');history.go(-1)</script>")
response.End()
else
set rs = server.CreateObject("adodb.recordset")
sql = "update menber set ip='"&Request.ServerVariables("REMOTE_ADDR")
sqlstr2 = "update menber set point = point + 1 where id in("
sqlstr2 = sqlstr2 & request("menberid") & ")"
rs.open sqlstr2,conn,3,1
response.Write("<script>alert('提交成功,谢谢您参与投票!');location.href='index.asp'</script>")
end if
else
response.Write("<script>alert('对不起,您先前已经投了一票,谢谢您的参与!');location.href='index.asp'</script>")
end if
%>
下面这段才对,上面是我乱改的,请改成限制同一IP只能投票一次

<%
if request.Cookies("pointed") = "" then
if request("menberid") = "" then
response.Write("<script>alert('要投票必须选择至少一个主题!');history.go(-1)</script>")
response.End()
else
set rs = server.CreateObject("adodb.recordset")
sqlstr2 = "update menber set point = point + 1 where id in("
sqlstr2 = sqlstr2 & request("menberid") & ")"
rs.open sqlstr2,conn,3,1
Response.Cookies("pointed").Expires = Date + 1
Response.Cookies("pointed") = "1"
response.Write("<script>alert('提交成功,谢谢您参与投票!');location.href='index.asp'</script>")
end if
else
response.Write("<script>alert('对不起,您先前已经投了一票,谢谢您的参与!');location.href='index.asp'</script>")
end if
%>
展开
 我来答
第十维度
2012-08-14 · 超过23用户采纳过TA的回答
知道答主
回答量:63
采纳率:0%
帮助的人:58.5万
展开全部
给你看一段差不多的,但功能强一些的
Dim id,VoteID,VoteSetting,tRs,SqlTemp,TheUrl,UserNum
id=Dbay.ReStr("id",1,1)
UserNum=0
Set Rs = Dbay.Execute("Select top 1 * From [VoteInfo] Where isPassed=1 and ID="& id &" and DateDiff(s, getdate(),EndDate)>=0")
If Rs.Eof And Rs.Bof Then
Rs.Close:Set Rs=Nothing
Response.Redirect("/")
End If
VoteSetting=Split(Rs("Setting"),",")
'判断会员
If VoteSetting(5)=1 And Dbay.UserID=0 Then
Dbay.Login("需要登录后才能进行投票")
Exit Sub
End If
If Dbay.UserID>0 Then UserNum=1

TheUrl=Request.ServerVariables("HTTP_REFERER")
If VoteSetting(6)=0 Then
'判断COOKIE
If TheUrl=Request.Cookies(Dbay.Lhm_sn)("vote" & id) Then
Dbay.ThisErr 1
Exit Sub
End If
End If
If Clng(VoteSetting(0))=1 Then
Dim iVoteID,h,douhao
iVoteID=Split(Dbay.ReStr("vote",0,1),",")
For h=0 to Ubound(iVoteID)
if h>VoteSetting(1) Then Exit For
If Dbay.CheckNumeric(iVoteID(h)) Then
VoteID=VoteID& douhao &iVoteID(h)
douhao=","
End If
Next
If VoteID="" Then
Dbay.ThisErr 2
Exit Sub
End If
Else
VoteID=Dbay.ReStr("vote",1,1)
End If

If Clng(VoteSetting(2))=1 Then '开始IP判断
If Clng(VoteSetting(3))=0 Then VoteSetting(3)=1
If Clng(VoteSetting(4))=1 Then
SqlTemp="DateDiff(s,UpdateTime,DateAdd(h,-"& VoteSetting(3) &",getdate()))<0"
ElseIf Clng(VoteSetting(4))=2 Then
SqlTemp="DateDiff(s,UpdateTime,DateAdd(d,-"& VoteSetting(3) &",getdate()))<0"
Else
SqlTemp="DateDiff(s,UpdateTime,DateAdd(yyyy,-"& VoteSetting(3) &",getdate()))<0"
End If
Set tRs=Dbay.Execute("Select Top 1 * From [VoteRecord] Where IP='"& Dbay.UserTrueIP &"' and "& SqlTemp &" Order by id Desc")
If Not (tRs.Eof and tRs.Bof) Then
'已投票
tRs.Close:Set tRs=Nothing
Dbay.ThisErr 3
Exit Sub
End If
tRs.Close
'开始记录IP
Set tRs=Dbay.Execute("Select Top 1 * From [VoteRecord] Where IP='"& Dbay.UserTrueIP &"' Order by id Desc")
If tRs.Eof And tRs.Bof Then
Dbay.Execute("INSERT INTO [VoteRecord] ([IP],[UpdateTime],[Num])VALUES ('"& Dbay.UserTrueIP &"',getdate(),1)")
Else
Dbay.Execute("UPDATE [VoteRecord] Set Updatetime=getdate(),Num=Num+1 Where id="& tRs("id") &"")
End IF
tRs.Close:Set tRs=Nothing
End If
'开始记录投票数据
If Clng(VoteSetting(0))=1 Then
Dbay.Execute("UPDATE [VoteInfoList] Set UserNum=UserNum+"& UserNum &",VoteNum=VoteNum+1 Where Voteid="& id &" and id in("& VoteID &")")
Else
Dbay.Execute("UPDATE [VoteInfoList] Set UserNum=UserNum+"& UserNum &",VoteNum=VoteNum+1 Where Voteid="& id &" and id="& VoteID &"")
End If
If VoteSetting(6)=0 Then Response.Cookies(Dbay.Lhm_sn)("vote" & id)=TheUrl
Rs.Close:Set Rs=Nothing
Storm代理
2023-07-25 广告
StormProxies是一家国内优质海外HTTP代理商,拥有一个庞大的IP资源池,覆盖200多个地区,IP数量大且匿名度高。其优点还包括超高并发、稳定高效、技术服务等特点,同时提供HTTP、HTTPS以及SOCKS5协议支持。此外,Sto... 点击进入详情页
本回答由Storm代理提供
油麦菜土豆
2012-08-15 · 超过63用户采纳过TA的回答
知道小有建树答主
回答量:238
采纳率:0%
帮助的人:151万
展开全部
<%
if request.Cookies("pointed") = "" then
if request("menberid") = "" then
response.Write("<script>alert('要投票必须选择至少一个主题!');history.go(-1)</script>")
response.End()
else
set rs = server.CreateObject("adodb.recordset")
sqlstr2 = "update menber set point = point + 1 where id in("
sqlstr2 = sqlstr2 & request("menberid") & ")"
rs.open sqlstr2,conn,3,1
Response.Cookies("pointed").Expires = Date + 1
Response.Cookies("pointed") = "1"
response.Write("<script>alert('提交成功,谢谢您参与投票!');location.href='index.asp'</script>")
end if
else
response.Write("<script>alert('对不起,您先前已经投了一票,谢谢您的参与!');location.href='index.asp'</script>")
end if
%>
你的这种,不知道的可以认为是投一次,但是把浏览器的cookie一清除就可能在投票,最好就办法就是用数据库记录ip地址的投票时间,通过 那个数据库里面的时间进行判断

可关注新浪 @颓废的追梦人
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
a602124500
2012-08-15 · 超过32用户采纳过TA的回答
知道答主
回答量:247
采纳率:0%
帮助的人:78.5万
展开全部
任务的路过.....
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
a915889517
2012-08-15 · 超过61用户采纳过TA的回答
知道小有建树答主
回答量:235
采纳率:0%
帮助的人:160万
展开全部
啊,么个?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式