ASP 注册页面,同步检测用户名是不是已存在
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ASP 注册页面,同步检测用户名是不是已存在相关的知识,希望对你有一定的参考价值。
搜索了很多,但由于是非专业,很多代码不是很明白,所以请高手指点!写出详细的javascript代码
当用户输入用户名之后,系统自动检测该用户名是否存在,并且在检测时要有提示,如:正在检测用户名,以下是我的注册页面,请写出javascript代码
<html>
<head>
</head>
<body>
<form name="form1" method="post" action="">
<table width="600" border="0" cellpadding="0" cellspacing="0">
<!--DWLayoutTable-->
<tr>
<td width="300" height="25" align="right" valign="middle">用户名:
<label>
<input name="tuser" type="text" id="tuser" onBlur="usercheck();">
</label></td>
<td width="300"><div id="tishi"></div></td>
</tr>
<tr>
<td height="25" align="right" valign="middle">密码:
<label>
<input name="pw" type="password" id="pw">
</label></td>
<td valign="top"><!--DWLayoutEmptyCell--> </td>
</tr>
<tr>
<td height="0"></td>
<td></td>
</tr>
</table>
</form>
</body>
</html>
还是把我搜到的贴出来吧!通过了测试,但是速度稍慢,所以很不满意,希望高手修改的让我更满意!
<script type="text/javascript">
var xmlHttp=false;
//创建xmlhttprequest
function createXMLHttpRequest()
//如果是ie
if (window.ActiveXObject)
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
//如果不是ie
else if (window.XMLHttpRequest)
xmlHttp = new XMLHttpRequest;
function RegUserCheck()
createXMLHttpRequest();
user=document.getElementById("tuser").value;
xmlHttp.open("get","checkuser.asp?tuser="+user+"",true);
xmlHttp.send();
//想在此处加一个真正检测的提示
if (xmlHttp.responseText==0)
document.getElementById('chekRegName').innerHTML="可以注册";
else if (xmlHttp.responseText==1)
document.getElementById('chekRegName').innerHTML="此用户名已被占用";
else
document.getElementById('chekRegName').innerHTML="用户名检测时发生错误";
</script>
还是需要访问服务器端的数据库
楼下仁兄的写法只是检查输入是否为空,是否符合格式
更多功能,去下载一个完整的例子
------------------------------------------------------
建议使用现成的控件,比如jquery或者moo之类的,实时异步查询服务器数据
这个还是要自己写个服务端.网络上jquery的例子推成山了,现成的应该有很多
比如jquery实现账号注册,jquery服务器端交互之类的 参考技术A <script language="vbscript">
sub cleck
if not form1.pwd.value=form1.pass.value then
alert"两次密码输入不一样"
exit sub
end if
if form1.username.value="" or form1.pwd.value="" or form1.name.value="" or form1.idcard.value="" or form1.email.value="@" then
alert"“帐号”“密码”不能为空"
exit sub
end if
form1.submit
end sub
</script>
<table width="361" border="5" align="center" cellspacing="0">
<tr>
<th width="65" align="center">帐号:</th>
<td width="278"><label>
<input name="username" type="text" id="username" size="18" maxlength="9" />
*</label></td>
</tr>
<tr>
<th align="center">密码:</th>
<td><label>
<input type="password" name="pwd" id="pwd" />
</label></td>
</tr>
<tr>
<th align="center">重复密码:</th>
<td><label>
<input type="password" name="pass" id="pass" />
</label></td>
</tr>
</table>
这样明白吧? 参考技术B 建议使用ajax实现。 参考技术C 可以使用JQuery或者其它Javascript框架,这样可以简化Ajax客户端代码。相关资料百度一下吧
利用AJAX+PHP+MySQL实现不重新加载页面进行用户名已注册检测
AJAX简介
服务器端处理代码(check.php)
header('Content-type: text/html;charset=utf-8');//指定发送数据编码格式为utf-8
$link = mysqli_connect("localhost","root","","test1","3306");//连接数据库
mysqli_query($link,"set names utf8");//设置数据库编码
$username = $_GET['username'];//获取请求中附带的用户名
$sql = "select * from tb_user where username='".$username."'";
$res = mysqli_query($link,$sql);//执行sql语句
$info = mysqli_fetch_array($res);//以数组形式返回数据集
if($info){
echo "用户名[".$username."]已被注册!";
}else{
echo "可以使用用户名[".$username."]";
}
客户端处理代码(index.php)
<html>
<head>
<meta charset="utf-8">
<title>利用AJAX实现不重新加载页面进行用户名已注册检测</title>
<style type="text/css">
.back {
width: 400px;
height: 300px;
margin: 100px auto;
}
.login {
width: 400px;
height: 250px;
background: #bbb;
}
.back article {
text-align: center;
margin: 0 auto;
font-size: 21px;
font-weight: bold;
}
.login form p {
text-align: center;
}
.tmp {
color: #cccccc;
}
.user,
.pwd {
width: 200px;
height: 30px;
border: solid #ccc 1px;
border-radius: 3px;
padding-left: 32px;
margin-top: 50px;
margin-bottom: 10px;
}
.pwd {
margin-top: 0;
}
.submit,
.rest {
width: 116px;
height: 30px;
background: rgba(0, 0, 0, .1);
border: solid #ccc 1px;
border-radius: 3px;
}
.submit:hover {
cursor: pointer;
background: #D8D8D8;
}
.rest:hover {
cursor: pointer;
background: #D8D8D8;
}
</style>
<script type="text/javascript">
var http_request = false; //初始化请求变量
/*由于IE游览器和谷歌火狐等浏览器创建XMLHttpRequest对象的方式不同
所以这里将两种创建XMLHttpRequest对象的代码都写上了
*/
function createRequest(url) {//初始化对象并发出XMLHttpRequest请求
http_request = false;
if (window.XMLHttpRequest) { //判断是否火狐、谷歌等其他浏览器
http_request = new XMLHttpRequest();
if (http_request.overrideMimeType) {
http_request.overrideMimeType("text/xml");
}
} else if (window.ActiveXObject) { //判断是否IE浏览器
try {
http_request = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
http_request = new ActiveXObject("Microsoft.XMLHTTP");
} catch (e) {}
}
}
if (!http_request) {
alert("浏览器不能创建XMLHTTP实例!");
return false;
}
http_request.onreadystatechange = alertContents; //当readyState发生改变时调用alertContents()
//也就是请求被发送到服务器时,调用alertContents函数来处理
http_request.open("GET", url, true); //以GET方式发出HTTP请求,true(异步)、false(同步)
http_request.send(null);//传递参数(仅POST方式有效)
}
function alertContents() { //处理服务器返回的信息
if (http_request.readyState == 4) { //表示响应已完成
if (http_request.status == 200) {//表示交易成功
window.alert(http_request.responseText);//输出字符串形式的响应数据
} else {
alert('您请求的页面发生错误');
return false;
}
}
}
</script>
<script type="text/javascript">
function check() {
var username = myform.user.value; //获取用户名文本框的值
if (username == "") {
window.alert("请填写用户名!");
myform.user.focus(); //文本框获得焦点
return false;
} else {
createRequest('check.php?username=' + username + '&nocache=' + new Date().getTime());
}
}
</script>
</head>
<body>
<section class="back">
<article>注册</article>
<section class="login">
<form name="myform">
<p>
<input type="text" name="user" class="user" placeholder="用户名" onchange="check()">
</p>
<p><input type="password" name="password" class="pwd" placeholder="密码"></p>
<p>
<input type="submit" class="submit" value="注册">
<input type="reset" class="rest" value="重置">
</p>
</form>
</section>
</section>
</body>
</html>
运行结果如图:
以上是关于ASP 注册页面,同步检测用户名是不是已存在的主要内容,如果未能解决你的问题,请参考以下文章
怎么在一个页面上实现先打开一个注册页,注册完后再跳转到原页面?