日期:2014-05-16  浏览次数:20956 次

asp怪异问题求助!
istp=0

set rstp=conn.execute("Select Count([ID]) From TouPiao Where IP='"&user_ip&"' and ArticleID="&ID&" and datediff(n,PostTime,getDate())<=80")
if not rstp.eof then
istp=rstp(0)
end if

tp_status=0

if istp>0 then
Response.Write ("<script language=javascript>alert('同一IP地址80分钟内只能对同一作品投票!');location='Class.asp'</script>")
response.End()
else
tp_status=1
end if

if tp_status=1 then
isql="INSERT INTO TouPiao(ArticleID,UserName,UserID,IP) VALUES ("&ArticleID&",'"&uName&"',"&uID&",'"&user_ip&"')"
Response.Write ("<script language=javascript>alert('恭喜你,投票成功!');location='Class.asp'</script>")
conn.execute(isql)
response.End()
end if

投票程序,当 istp=0 时,即没有此ip的投票记录时,执行对数据库的插入,提示投票成功。
当istp>0 时,已经有投票记录,弹出不能投票分提示。

现在问题是:当查询istp=0 时,先执行了插入数据的操作,然后弹出了上面不能投票的提示,把conn.execute(isql)注释掉,倒是出来投票成功的提示
------解决方案--------------------
你给conn.execute(isql)加个try……catch,然后在try中插入后显示投票成功,catch中显示投票失败
------解决方案--------------------
没看出什么问题就这些代码,tp_status的判断可以不用要了,投票过response.end后后续代码就不执行了
------解决方案--------------------
难道你这个页面重复加载了?这个页面不会就是Calss.asp吧?
------解决方案--------------------
引用:
Quote: 引用:

没看出什么问题就这些代码,tp_status的判断可以不用要了,投票过response.end后后续代码就不执行了


逻辑上我也看不出问题,但执行起来就出问题,所以觉得怪异


感觉你应该是访问2次投票页面吧。。开发工具监视下发送的http请求