ASP中的怪问题折腾了我很久
网页提交后写数据库为何每次都写两次,我仔细查看了代码也没有什么问题。
情况如下,编写了一个会员积分功能,当用户登陆后,对应的登陆积分和登陆次数都相应增加,但我每次登陆后都双倍的增加了。也就是对应增加积分的功能块执行了两次。请朋友们分析一下原因。注:增加积分的功能我单独进行测试是正常的。在用户登陆后进行触发就会出问题
代码如下
Sub SubAddJifen(userID)
'=================================================
'过程名:SubAddJifen
'作 用:更新登陆积分计数,用户每登陆一次,加100分
'
'=================================================
'sql2="update integral set loginIntegral=loginIntegral+100,loginCounts=loginCounts+1 where userID='"&userID&"'"
'conn.execute(sql2)
strSql="select * from integral where userID='"&userID&"'"
Set RsJf=Server.CreateObject("ADODB.RecordSet")
RsJf.open strSql,conn,1,3
if not RsJf.eof then
RsJf("loginCounts")=RsJf("loginCounts")+1
RsJf("loginIntegral")=RsJf("loginIntegral")+100
RsJf.update
response.Write("Integral loginCounts:"&RsJf("loginCounts")&"<br>")
response.Write("Integral loginIntegral:"&RsJf("loginIntegral")&"<br>")
end if
RsJf.close
Set RsJf=nothing
End Sub
登陆执行代码如下:
userID=trim(request("userID"))
userPwd=trim(request("userPwd"))
sql="select ID,userID,userPwd,UserName,Email,Phone from users where userID='"&userID&"' and userPwd='"&userPwd&"'"
'set rs=conn.execute(sql)
set rs=server.createObject("adodb.recordSet")
rs.open sql,conn,1,1
If rs.eof then
response.redirect "noPurview.asp"
Else
session("login")=true
rs.close
set rs=nothing
Call SubAddJifen(userID)
conn.close
set conn=nothing
response.redirect "member.asp"
end if