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)
发生意外。
...全文
161 点赞 收藏 7
写回复
7 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
Alices 2008-04-07

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

回复
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
回复
相关推荐
发帖
ASP
创建于2007-09-28

2.8w+

社区成员

ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
申请成为版主
帖子事件
创建了帖子
2008-04-07 02:23
社区公告
暂无公告