求asp代码----防止同一账号重复投票
同一账号重复投票 ...?
在投票问题里面添加一个字段 ...
以字符串的形式储存投过票的用户 id ...
如 "1|3|5|7|9|15|28|36" 这样 ...
读取的时候把字符串拆成一个 array ...
判断 array 中是否存在当前用户 id ...
存在就转到 ErrorPage 咯 ...
如上所说的如何以字符串的形式储存投过票的用户
如何读取的时候把字符串拆成一个 array判断 array 中是否存在当前用户 id
参考答案:<%
if session("login")=True and request("dz")="tp" then
set rs=server.createobject("adodb.recordset")
sql="select 投票记录情况 from 问题列表 where ID=" & request("qid")
rs.open sql,conn,1,3
'//从数据库中读取记录情况,数据库中已经投票ID是以“;”分隔开记录在“投票记录情况”字段的
Settle_jl=split(rs("投票记录情况"),";")
'//检测当前用户是否已经对该问题投过票,如果是则:tp=true
for i = 0 to Ubound(Settle_jl)-1
if clng(Settle_jl(i))=clng(session("user_id")) then
tp=true
exit for
end if
next
'//针对是否投过票进行相应的数据处理
if tp = true then
rs.close
set rs=nothing
response.Write("您已经参加此问题的投票,不能重复投票!")
response.End()
else
'//写入投票记录
rs("投票记录情况")=rs("投票记录情况") & session("user_id") & ";"
rs.update
rs.close
set rs=nothing
'//给相映问题加1票
set rs=server.createobject("adodb.recordset")
sql="select 获取票数 from 投票问题 where 问题ID=" & request("aid")
rs.open sql,conn,1,3
if rs("获取票数")="" then rs("获取票数")=0
rs("获取票数")=rs("获取票数")+1
rs.update
rs.close
set rs=nothing
response.Write("恭喜您,您投票成功!目前投票情况如下:")
response.End()
end if
elseif session("login")<>True and request("dz")="tp" then
response.Write("您没有登陆,不能参加投票!" )
response.End()
end if
%>