asp判断用户是否已经存在的问题

<!--#includefile="conn.asp"--><!--#includeFile="inc/MD5.asp"--><%ifrequest("action")=... <!--#include file="conn.asp"-->
<!--#include File="inc/MD5.asp"-->

<%if request("action")="reg_p1" then

Set rs=Server.CreateObject("ADODB.Recordset")
sql="select * from user_p where user='"&request("user")&"'"
rs.open sql,conn,1,3

if not rs.eof then
response.write "<script language=JavaScript>alert('该用户名(邮箱)已经注册,请登录或者重新使用其他邮箱进行注册!');" & "history.back()" & "</script>"
else
rs.addnew()
rs("user")=request("user")
rs("psw")=md5(trim(request("psw")))
rs("tel")=request("tel")
rs("date")=date()
rs.update()
end if

rs.close
set rs=nothing

Set rs1=Server.CreateObject("ADODB.Recordset")
sql="select id from user_p where user='"&request("user")&"'"
rs1.open sql,conn,1,1
userid=rs1(0)
rs1.close
set rs1=nothing

response.write "<script language=JavaScript>alert('注册成功,点击进入下一步!');" & "window.location.href='reg_p2.asp'" & "</script>"
end if%>

说明:记录不存在,数据也写入了数据库,但是不能跳转到下一步,弹出的对话框是:“该用户名(邮箱)已经注册,请登录或者重新使用其他邮箱进行注册!”
?????????????????急急!
展开
 我来答
ivanzxy
推荐于2017-07-16 · TA获得超过1166个赞
知道小有建树答主
回答量:284
采纳率:100%
帮助的人:365万
展开全部
弹出的对话框是:“该用户名(邮箱)已经注册,请登录或者重新使用其他邮箱进行注册!”
说明执行了语句:response.write "<script language=JavaScript>alert('该用户名(邮箱)已经注册,请登录或者重新使用其他邮箱进行注册!');" & "history.back()" & "</script>"说明if not rs.eof条件成立

奇怪的是楼主你数据也写入了数据库,那说明else语句也执行了。从代码上看似乎没问题。有点奇怪。
楼主可以把response.write "<script language=JavaScript>alert('注册成功,点击进入下一步!');" & "window.location.href='reg_p2.asp'" & "</script>"这句语句放在else语句下试试,看是否被执行。。

还有。楼主的
Set rs1=Server.CreateObject("ADODB.Recordset")
sql="select id from user_p where user='"&request("user")&"'"
rs1.open sql,conn,1,1
userid=rs1(0)
rs1.close
set rs1=nothing
这段语句也应该放在else语句内吧

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

<%if request("action")="reg_p1" then

Set rs=Server.CreateObject("ADODB.Recordset")
sql="select * from user_p where user='"&request("user")&"'"
rs.open sql,conn,1,3

if not rs.eof then
response.write "<script language=JavaScript>alert('该用户名(邮箱)已经注册,请登录或者重新使用其他邮箱进行注册!');" & "history.back()" & "</script>"
else
rs.addnew()
rs("user")=request("user")
rs("psw")=md5(trim(request("psw")))
rs("tel")=request("tel")
rs("date")=date()
rs.update()

rs.close
set rs=nothing

Set rs1=Server.CreateObject("ADODB.Recordset")
sql="select id from user_p where user='"&request("user")&"'"
rs1.open sql,conn,1,1
userid=rs1(0)
rs1.close
set rs1=nothing

response.write "<script language=JavaScript>alert('注册成功,点击进入下一步!');" & "window.location.href='reg_p2.asp'" & "</script>"
end if
end if%>
大雅新科技有限公司
2024-11-19 广告
这方面更多更全面的信息其实可以找下大雅新。深圳市大雅新科技有限公司从事KVM延长器,DVI延长器,USB延长器,键盘鼠标延长器,双绞线视频传输器,VGA视频双绞线传输器,VGA延长器,VGA视频延长器,DVI KVM 切换器等,优质供应商,... 点击进入详情页
本回答由大雅新科技有限公司提供
cosler
2010-08-27 · 超过17用户采纳过TA的回答
知道答主
回答量:128
采纳率:0%
帮助的人:54.5万
展开全部
把数据库表user_p的字段id设为主键
代码改为:

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

<%if request("action")="reg_p1" then

Set rs=Server.CreateObject("ADODB.Recordset")
sql="select * from user_p where user='"&request("user")&"'"
rs.open sql,conn,1,3

if rs.recordcount>0 then
response.write "<script language=JavaScript>alert('该用户名(邮箱)已经注册,请登录或者重新使用其他邮箱进行注册!');" & "history.back()" & "</script>"
response.end
else
rs.addnew()
rs("user")=request("user")
rs("psw")=md5(trim(request("psw")))
rs("tel")=request("tel")
rs("date")=date()
rs.update()
userid=rs("id")'设成主键自动加1后就可以取到值了。
response.write "<script language=JavaScript>alert('注册成功,点击进入下一步!');" & "window.location.href='reg_p2.asp'" & "</script>"
response.end
end if

rs.close
set rs=nothing
end if%>
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
yuemengaa
2010-08-27 · 超过15用户采纳过TA的回答
知道答主
回答量:43
采纳率:0%
帮助的人:28.1万
展开全部
if not rs.eof then 改为 if not (rs.bof and rs.eof) then
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
lujincheng0
2010-08-29
知道答主
回答量:7
采纳率:0%
帮助的人:1.2万
展开全部
IF语句中ELSE是否写反了???
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式