xiao6758 2016-09-29 07:35 采纳率: 0%
浏览 857
已结题

asp投票程序,把access改成sql 2008 后,vote不能记录访问用户ip。

投票、票数增加都是正常的,就是result表没有记录。
本人小白一枚,请大神简单易懂的指点一下。
————————————
vote.asp

#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("alert(&#39;您已经投票,请稍后再来投票!&#39;);location=&#39;index.asp&#39;;")
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("alert(&#39;您对该投票项的投票已达上限,请稍后再来投票!&#39;);location=&#39;index.asp&#39;;")
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('恭喜您,投票成功,谢谢您的参与!');history.back();</script>"
  end if

end if
end if
%>
————————————
config.asp

<%
Const SiteName="1233"

Const ks="1"

Const xxps="50"

Const kssm="投票关闭!"

Const gz="100"

Const glsj=""

Const Copyright="123444"
%>

  • 写回答

2条回答 默认 最新

  • qq_30729379 2016-09-29 09:08
    关注

    是不是sql不支持vote记录访问ip?

    评论

报告相同问题?

悬赏问题

  • ¥15 关于#matlab#的问题:在模糊控制器中选出线路信息,在simulink中根据线路信息生成速度时间目标曲线(初速度为20m/s,15秒后减为0的速度时间图像)我想问线路信息是什么
  • ¥15 banner广告展示设置多少时间不怎么会消耗用户价值
  • ¥16 mybatis的代理对象无法通过@Autowired装填
  • ¥15 可见光定位matlab仿真
  • ¥15 arduino 四自由度机械臂
  • ¥15 wordpress 产品图片 GIF 没法显示
  • ¥15 求三国群英传pl国战时间的修改方法
  • ¥15 matlab代码代写,需写出详细代码,代价私
  • ¥15 ROS系统搭建请教(跨境电商用途)
  • ¥15 AIC3204的示例代码有吗,想用AIC3204测量血氧,找不到相关的代码。