求图片投票程序

2025-03-22 01:53:36
推荐回答(1个)
回答1:

整个完整的投票系统(原创):
显示页面show.asp的代码如下

<%
set rs=server.CreateObject("adodb.recordset")
sql="select * from ceshi"
rs.open sql,conn,1,1
%>



投票
















<%
rs.pagesize=8 '设置每页显示8张图片
if not rs.eof then
page=cint(request("page"))
if page<1 then page=1
if page>rs.pagecount then page=rs.pagecount
showpages rs,page
else
%>

<%
end if
%>
<%
sub showpages(rs,page)
rs.absolutepage=page
i=1
do while not rs.eof
%>

<%
for j=1 to 4 '设置每行显示3张图片
%>

<%
i=i+1
rs.movenext
if i>8 then exit do
if rs.eof then exit for
next
loop
end sub
%>









width="100" height="100">
">
<%=rs("name")%>

 



<%
if page=1 then
response.Write("第一页 上一页 ")
end if
if page<>1 then
response.Write("第一页 ")
response.Write("上一页 ")
end if
if page<>rs.pagecount then
response.Write("下一页 ")
response.Write("最末页 ")
end if
if page=rs.pagecount then
response.Write("下一页 最末页 ")
end if
%>


<%
rs.close
set rs=nothing
%>

投票处理页面vote.asp的代码如下:

<%
if session("userip")<>"" then
%>

<%
else
%>
<%
id=trim(request("pid"))
set rs=server.CreateObject("adodb.recordset")
sql="select * from ceshi where id="&id&""
rs.open sql,conn,1,3
rs("vote")=rs("vote")+1 '票数加1
rs.update '记得更新才可以
%>

<%
userip = Request.ServerVariables("HTTP_X_FORWARDED_FOR")
'如果他用代理服务器的话,那么就透过代理服务器来取得客户端的真实IP地址
If userip = "" Then userip = Request.ServerVariables("REMOTE_ADDR")
'如果获取的IP是空,也就是说他没有使用代理服务器,那么就直接取得客户端的真实IP地址
session("userip")=userip
rs.close
set rs=nothing
end if
%>
投票结果查看页面view.asp的代码如下:

<%
set rs=server.CreateObject("adodb.recordset")
sql="select * from ceshi"
rs.open sql,conn,1,1
%>


查看投票结果


















投票结果查看(排名不分先后)
参赛人的名字 投票的票数

<%
if not rs.eof then
do while not rs.eof
%>





<%=rs("name")%> <%=rs("vote")%>

<%
rs.movenext
loop
end if
%>



测试过了,没有问题,其中表的名字我是用ceshi,里面的字段有id(递增ID),name(投票人的名字),images(参赛人的图片),vote(投票数目)

上面这个的话,还是可以作弊,我又将vote.asp页面作了修改,多加了个userip表的userip字段来保存投过票的IP,这样的话,同一个IP就只可以投票一次,可以防止作弊:

<%
ipaddress = Request.ServerVariables("HTTP_X_FORWARDED_FOR")
'如果他用代理服务器的话,那么就透过代理服务器来取得客户端的真实IP地址
If ipaddress = "" Then ipaddress = Request.ServerVariables("REMOTE_ADDR")
'如果获取的IP是空,也就是说他没有使用代理服务器,那么就直接取得客户端的真实IP地址
%>
<%
set rsip=server.CreateObject("adodb.recordset")
sqlip="select userip from userip"
rsip.open sqlip,conn,1,1
ip=rsip("userip")
ipshuzu=split(ip,",")
ipnum=ubound(ipshuzu)
for i=0 to ipnum
'response.Write(ipshuzu(i))
if ipaddress=ipshuzu(i) then
response.Write("")
end if
next
rsip.close
set rsip=nothing
%>
<%
'else
%>
<%
id=trim(request("pid"))
set rs=server.CreateObject("adodb.recordset")
sql="select * from ceshi where id="&id&""
rs.open sql,conn,1,3
rs("vote")=rs("vote")+1 '票数加1
rs.update '记得更新才可以
rs.close
set rs=nothing

set rs1=server.CreateObject("adodb.recordset")
sql1="select * from userip"
rs1.open sql1,conn,1,3
'response.Write(ipaddress)
rs1("userip")=ipaddress&","&rs1("userip") '先在userip字段添加一个IP,不然会出错!
rs1.update '记得更新才可以
rs1.close
set rs1=nothing
%>

如果有什么问题的话,可以问我:63055127