内网投票,1个IP24小时内只能投1票。想把24小时改成1小时。

HelplessTo 2012-09-26 01:29:05
想把24小时改成一小时。如何实现?

联系QQ:2529323298

代码如下:

<!--#include file="inc/config.asp"-->

<!--#include file="inc/conn.asp"-->

<%

if ks=0 then

response.write kssm

response.end

end if

server_v1=Cstr(Request.ServerVariables("HTTP_REFERER"))

server_v2=Cstr(Request.ServerVariables("SERVER_NAME"))

if mid(server_v1,8,len(server_v2))<>server_v2 then

response.write "你提交的路径有误,禁止从站点外部提交数据!"

response.end

end if

vid=Request.QueryString("id")

Function getIP()

getIP = Request.ServerVariables("HTTP_X_FORWARDED_FOR")

If getIP = "" Then getIP = (Request.ServerVariables("REMOTE_ADDR"))

End Function

ipdate=vid&getIP&date()

if ipdate<>"" then

Set rs = Server.CreateObject( "ADODB.Recordset" )

Set rs1 = Server.CreateObject( "ADODB.Recordset" )

Set rs2 = Server.CreateObject( "ADODB.Recordset" )

set rssum=server.createobject("adodb.recordset")

exec="select sum(addps) as sumps from Result where addip='" & getIP & "' and addtime>=#"& now()-1 &"#"

rssum.open exec,conn,1,1

sumps=rssum("sumps")

set rssum3=server.createobject("adodb.recordset")

exec2="select sum(addps) as sumps from Result where addip='" & getIP & "'"

rssum3.open exec2,conn,1,1

sumps3=rssum3("sumps")

sql = "select * from Result"

rs.open sql,conn,1,3



if int(sumps)>=int(gz) then

Response.write("<script language='javascript'>alert('您已经投票,请稍后再来投票!');location='index.asp';</script>")

response.End()

else

sql2 ="select sum(addps) as sumps from Result where addip='" & getIP & "' and voteid='"&vid&"' and addtime>=#"& now()-1 &"#"

rs2.open sql2,conn,1,1

sumps2=rs2("sumps")

if int(sumps2)>=int(xxps) then

Response.write("<script language='javascript'>alert('您对该投票项的投票已达上限,请稍后再来投票!');location='index.asp';</script>")

response.End()

else



sql1= "select * from Result where addip='" & getIP & "' and voteid='"&vid&"'"

rs1.open sql1,conn,1,3

if not (rs1.bof and rs1.eof) then


if sumps=0 then

sqlu="update Result set addtime='"& now() &"',ipdate='"&ipdate&"',addps=1 where addip='" & getIP & "'"

else

sqlu="update Result set addps=addps+1 where addip='" & getIP & "' and voteid='"&vid&"'"



end if

conn.execute(sqlu)



else

rs.addnew

rs("voteid")=vid

rs("addip")=getIP

rs("ipdate")=ipdate

rs("addps")=1

rs.update

rs.close

end if



Set rs=nothing

sql="update Info set ps=ps+1 where id="&vid

conn.execute(sql)

Response.write "<script language='javascript'>alert('恭喜您,投票成功,谢谢您的参与!');location='index.asp';</script>"

end if

end if

end if

%>
...全文
293 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
事实上这种方法,还可以再结合COOKIE来在客户端就先限制一把(虽然可破解,但对大多菜鸟用户已经够用了),这样可以降低每次都让服务器操作数据库来验证的很多压力。
  • 打赏
  • 举报
回复
这种问题可以说是最简单的,因为只要你学过任何一门编程语言,处理这个都能通过英文单词找到问题所在位置,并且看出它是怎么实现的,在这里是检测到前一天之间有没有投过票的记录,有就不再让投。那么只要改成在一小时之内有没有就可以了。而即使你不会这门语言,只要搜一下“ASP时间处理函数”就能知道如何对时间进行转换和运算。

楼主应该不是程序员,那么是什么岗位做什么岗位的事,不要越俎代庖,或者想通过热心的技术交流实现不聘请技术人员的险恶目的,这些都是跟咱们过不去的,如何指望帮你?
jgkgjgkg 2012-09-26
  • 打赏
  • 举报
回复
now()-1 换掉,至于换什么。
百度搜索 aspnow() 有个 aspnow() 百度文库,里面有你想要的。
KK3K2005 2012-09-26
  • 打赏
  • 举报
回复
sql2 ="select sum(addps) as sumps from Result where addip='" & getIP & "' and voteid='"&vid&"' and addtime>=#"& now()-1 &"#"

新手应该去学习 换个老手来把
HelplessTo 2012-09-26
  • 打赏
  • 举报
回复
我是新手,不太懂 ,临时有用, 帮个忙吧, 要怎么样才肯帮忙?
  • 打赏
  • 举报
回复
看着改都不会,楼主不学还想做事,最合适的方法就是发项目交易了,要不然你想饿死咱们这些专门学搞开发的弟兄?

28,390

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧