ASP注册系统,防重复注册怎么写?

saketor 2008-04-07 02:23:43
我用ASP写个注册系统,想防止重复注册,我按下面的写法错误
<%
UserID = Trim(Request.Form("UserID")) '获取学号

set rs1=server.createobject("adodb.recordset")
eSql ="SELECT UserID FROM user_info Where UserID='UserID'"
rs1.Open eSql,Conn,1,1

If rs1("UserID")<>"" Then
FoundErr=True
ErrMsg="对不起您已注册,请勿重复注册!"
End If
rs1.close
set rs1=nothing
If FoundErr=True Then
%>
<script language="javascript">
alert('<%=ErrMsg%>');
</script>
<%
Else
ErrMsg=""
ErrMsg="信息录入成功,您的帐号将在1~2个工作日内完成注册!"
set rs=server.createobject("adodb.recordset")
Sql ="SELECT * FROM user_info"
rs.Open Sql,Conn,3,3
rs.AddNew

rs("UserID") = UserID

rs.Update
rs.close
set rs=nothing
%>
<script language="javascript">
alert('<%=ErrMsg%>');
</script>
<%
End If
%>
浏览器提示
错误类型:
(0x80020009)
发生意外。
...全文
192 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
Alices 2008-04-07
  • 打赏
  • 举报
回复

sCount ="SELECT Count(*) FROM user_info Where UserID='"& UserID &"'"

Go 旅城通票 2008-04-07
  • 打赏
  • 举报
回复
If rs1("UserID") <>"" Then
FoundErr=True
ErrMsg="对不起您已注册,请勿重复注册!"
End If



这个判断有问题,不存在时数据行没有,你rs1("UserID")当然出错

应该改为

if not(rs1.eof or rs1.bof) then
FoundErr=True
ErrMsg="对不起您已注册,请勿重复注册!"
End If
  • 打赏
  • 举报
回复
<%
UserID = Trim(Request.Form("UserID")) '获取学号

set rs1=server.createobject("adodb.recordset")
eSql ="SELECT UserID FROM user_info Where UserID='UserID'" '这部分UserID是变量,如果你这么写,那么他是字符串了,变量的话要用字段类型是文本的话用'"&UserID&"',如果是数字类型的话用
"&UserID&"
rs1.Open eSql,Conn,1,1

If rs1("UserID") <>"" Then 这句最好改为if not rs.bof then
FoundErr=True
ErrMsg="对不起您已注册,请勿重复注册!"
End If
rs1.close
set rs1=nothing
If FoundErr=True Then
%>
<script language="javascript">
alert(' <%=ErrMsg%>');
</script>
<%
Else
ErrMsg=""
ErrMsg="信息录入成功,您的帐号将在1~2个工作日内完成注册!"
set rs=server.createobject("adodb.recordset")
Sql ="SELECT * FROM user_info"
rs.Open Sql,Conn,3,3
rs.AddNew

rs("UserID") = UserID

rs.Update
rs.close
set rs=nothing
%>
<script language="javascript">
alert(' <%=ErrMsg%>');
</script>
<%
End If
%>
  • 打赏
  • 举报
回复
<%
UserID = Trim(Request.Form("UserID")) '获取学号

set rs1=server.createobject("adodb.recordset")
eSql ="SELECT UserID FROM user_info Where UserID='UserID'" '这部分UserID是变量,如果你这么写,那么他是字符串了,变量的话要用字段类型是文本的话用'"&UserID&"',如果是数字类型的话用
"&UserID&"
rs1.Open eSql,Conn,1,1

If rs1("UserID") <>"" Then
FoundErr=True
ErrMsg="对不起您已注册,请勿重复注册!"
End If
rs1.close
set rs1=nothing
If FoundErr=True Then
%>
<script language="javascript">
alert(' <%=ErrMsg%>');
</script>
<%
Else
ErrMsg=""
ErrMsg="信息录入成功,您的帐号将在1~2个工作日内完成注册!"
set rs=server.createobject("adodb.recordset")
Sql ="SELECT * FROM user_info"
rs.Open Sql,Conn,3,3
rs.AddNew

rs("UserID") = UserID

rs.Update
rs.close
set rs=nothing
%>
<script language="javascript">
alert(' <%=ErrMsg%>');
</script>
<%
End If
%>
saketor 2008-04-07
  • 打赏
  • 举报
回复
这样对是对了,但我填写一个其他的 没填过的UserID会出错?
zjf07 2008-04-07
  • 打赏
  • 举报
回复
已经解决了,来迟了,郁闷
若白师妹 2008-04-07
  • 打赏
  • 举报
回复
基础没学好,错误太多

eSql ="SELECT UserID FROM user_info Where UserID='"& UserID &"'"
rs1.Open eSql,Conn,1,1

If not rs.eof Then

28,391

社区成员

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

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