注册 登录
编程论坛 ASP技术论坛

[求助]注册验证

as66036655 发布于 2007-10-26 14:42, 514 次点击

在注册的时候验证用户名唯一性在数据库里~~谁能给个思路
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>无标题文档</title>
</head>

<body>
<form id="form1" name="form1" method="post" action="zhucechenggong.asp">
<table width="247" border="1" align="center">
<tr>
<td colspan="2" align="center"><h4>用户注册</h4></td>
</tr>
<tr>
<td width="36">用户名:</td>
<td width="195"><input name="t1" type="text" id="t1" />
<input type="submit" name="Submit3" value="验证用户唯一" /></td>
</tr>
<tr>
<td>密码</td>
<td><input name="t2" type="password" id="t2" /></td>
</tr>
<tr>
<td>真实姓名</td>
<td><input name="t3" type="text" id="t3" /></td>
</tr>
<tr>
<td colspan="2" align="center"><input type="submit" name="Submit" value="注册" />
&nbsp;&nbsp;
<input type="reset" name="Submit2" value="重置" /></td>
</tr>
</table>
</form>
</body>
</html>

8 回复
#2
勇者RX2007-10-26 15:03
在数据库搜索传过来的变量值就行啊,如果rs.eof那么这个用户名就是唯一的!
#3
hebingbing2007-10-26 15:04

你可以“验证用户唯一”的按钮的“行为”指向另为一个页面,在那个页面来完成验证的功能。

#4
as660366552007-10-26 15:19
能在详细点不??那什么命令指向~~在一个我怎么把文本框的值传过去
#5
qhscqb2007-10-26 18:09
用onblur事件或用一个按钮来实现,如
<form action="checkusr.asp" method="post" name="frmusr" target="main">
请输入用户或<input type=text name="usrname" onblur="jscript:frmusr.submit()">
</form>

<form action="checkusr.asp" method="post" name="frmusr" target="main">
请输入用户或<input type=text name="usrname" >&nbsp;&nbsp<input type=button name="checkusr" value="验证用户" onclick="jscript:frmusr.submit()">
发送过去后,再利用验证程序创建一个SESSION,如果用户名不唯一,则删除此SESSION,这样就不影响再次输入用户了;当用户名唯一时,就可以利用此SESSION值来进行注册了.大概的过程就是这样.你试试吧,我经常这样做.
上面的main是指一个名为main Iframe
#6
tianyu1232007-10-26 18:18
以下是引用as66036655在2007-10-26 15:19:46的发言:
能在详细点不??那什么命令指向~~在一个我怎么把文本框的值传过去

写一个函数即可:
<script language=javascript>
function url()
{
form1.action="123.asp?act=ok";//123.asp为用户名检测页面
form1.submit();
}
</script>
然后在验证按钮上调用此函数

<input type="submit" name="Submit3" value="验证用户唯一" onclick="url();" />

最后在123.asp页面中验证即可

123.asp代码如下:
<%
user=request.form("t1") '获取传递来的用户名
set rs=server.createobject("adodb.recordset")
sql="select * from table where user='"& user &"'"
rs.open sql,conn,1,1
if not(rs.bof and rs.eof) then
response.write"<script>alert('用户名已经存在!\n请换一个!');history.go(-1);</script>"
response.end
rs.close
set rs=nothing
end if
%>


#7
qhscqb2007-10-26 18:35
楼上高手的方法确实不错,我有一个问题,就是如果按这种方法提交,会让所有的表单都提交,这会对于像密码和其他注册信息的验证是不是有影响,如果用此方法我认为验证唯一的页面就成了验证所有信息的了,不知我理解的对不对?
#8
tianyu1232007-10-26 18:52


那就改为这样:

<script language=javascript>
function url()
{
location.href="123.asp?user="+form1.t1.value;
}
</script>

把提交按钮改为普通按钮:

<input type="button" name="Submit3" value="验证用户唯一" onclick="url();" />

然后在123.asp页面验证即可

<%

user=request.querystring("user")

......

%>

#9
as660366552007-10-26 19:46

谢谢大侠们指导

1