ajax之用户名唯一性验证的实现(php)
2008-12-05 00:39
597 查看
用户名唯一性验证的实现
在一些需要用户注册的系统中,由于系统需要保证用户名的唯一性,在注册时往往需要检查用户名。在一些使用传统方式设计的网站中,往往需要提交整个页面来进行用户名唯一性的检查。这种方式虽然可以正确检测用户名的唯一性,但是对于用户的友好度比较差。
使用Ajax进行用户名唯一性检查可以在不影响用户表单填写的情况下执行,大大增加了表单的友好度。以下代码是一个进行用户名唯一性验证的例子。
<html>
<head>
<title>Ajax Example</title>
<script type="text/javascript">
var xmlobj; //定义XMLHttpRequest对象
function CreateXMLHttpRequest()
{
if(window.ActiveXObject) //如果当前浏览器支持Active Xobject,则创建ActiveXObject对象
{
xmlobj = new ActiveXObject("Microsoft.XMLHTTP");
}
else if(window.XMLHttpRequest) //如果当前浏览器支持XMLHttp Request,则创建XMLHttpRequest对象
{
xmlobj = new XMLHttpRequest();
}
}
function Validate() //主程序函数
{
CreateXMLHttpRequest(); //创建对象
var showurl = "validate.php?username=" + document.getElementById ("username").value; //构造URL
xmlobj.open("GET", showurl, true); //调用validate.php
xmlobj.onreadystatechange = StatHandler; //判断URL调用的状态值并处理
xmlobj.send(null); //设置为不发送给服务器任何数据
}
function StatHandler() //用于处理状态的函数
{
if(xmlobj.readyState == 4 && xmlobj.status == 200) //如果URL成功访问,则输出网页
{
if(xmlobj.responseText == "1") //检查用户名是否有效
{
document.getElementById("msg").innerHTML = "<font color=RED>该用户名已被人使用</font>";
}
else if(xmlobj.responseText == "0")
{
document.getElementById("msg").innerHTML="<font color=GREEN>该用户名未被人使用</font>";
}
else
{
document.getElementById("msg").innerHTML = "<font color=RED>用户名验证程序出错</font>";
}
}
}
</script>
</head>
<body>
<p><form action="">
用户名:<input type="text" id="username">
<input type="button" value="用户名验证" onclick="Validate();">
<div id="msg"></div>
</form></p>
</body>
</html>
上面的代码通过请求validate.php来执行用户名的唯一性验证,并根据validate.php的返回内容来决定用户名是否唯一,代码如下所示。
<?php
$conn = mysql_connect("localhost", "root", "");
$user = $_GET['username'];
$querySQL = "SELECT * FROM users WHERE username = '$user'";
mysql_select_db("cms", $conn);
$rs = mysql_query($querySQL, $conn) or die("Error");
$rs_cnt = mysql_num_rows($rs);
echo $rs_cnt;
?>
运行结果如图50-6所示。
在一些需要用户注册的系统中,由于系统需要保证用户名的唯一性,在注册时往往需要检查用户名。在一些使用传统方式设计的网站中,往往需要提交整个页面来进行用户名唯一性的检查。这种方式虽然可以正确检测用户名的唯一性,但是对于用户的友好度比较差。
使用Ajax进行用户名唯一性检查可以在不影响用户表单填写的情况下执行,大大增加了表单的友好度。以下代码是一个进行用户名唯一性验证的例子。
<html>
<head>
<title>Ajax Example</title>
<script type="text/javascript">
var xmlobj; //定义XMLHttpRequest对象
function CreateXMLHttpRequest()
{
if(window.ActiveXObject) //如果当前浏览器支持Active Xobject,则创建ActiveXObject对象
{
xmlobj = new ActiveXObject("Microsoft.XMLHTTP");
}
else if(window.XMLHttpRequest) //如果当前浏览器支持XMLHttp Request,则创建XMLHttpRequest对象
{
xmlobj = new XMLHttpRequest();
}
}
function Validate() //主程序函数
{
CreateXMLHttpRequest(); //创建对象
var showurl = "validate.php?username=" + document.getElementById ("username").value; //构造URL
xmlobj.open("GET", showurl, true); //调用validate.php
xmlobj.onreadystatechange = StatHandler; //判断URL调用的状态值并处理
xmlobj.send(null); //设置为不发送给服务器任何数据
}
function StatHandler() //用于处理状态的函数
{
if(xmlobj.readyState == 4 && xmlobj.status == 200) //如果URL成功访问,则输出网页
{
if(xmlobj.responseText == "1") //检查用户名是否有效
{
document.getElementById("msg").innerHTML = "<font color=RED>该用户名已被人使用</font>";
}
else if(xmlobj.responseText == "0")
{
document.getElementById("msg").innerHTML="<font color=GREEN>该用户名未被人使用</font>";
}
else
{
document.getElementById("msg").innerHTML = "<font color=RED>用户名验证程序出错</font>";
}
}
}
</script>
</head>
<body>
<p><form action="">
用户名:<input type="text" id="username">
<input type="button" value="用户名验证" onclick="Validate();">
<div id="msg"></div>
</form></p>
</body>
</html>
上面的代码通过请求validate.php来执行用户名的唯一性验证,并根据validate.php的返回内容来决定用户名是否唯一,代码如下所示。
<?php
$conn = mysql_connect("localhost", "root", "");
$user = $_GET['username'];
$querySQL = "SELECT * FROM users WHERE username = '$user'";
mysql_select_db("cms", $conn);
$rs = mysql_query($querySQL, $conn) or die("Error");
$rs_cnt = mysql_num_rows($rs);
echo $rs_cnt;
?>
运行结果如图50-6所示。
相关文章推荐
- 基于jQuery实现的Ajax 验证用户名唯一性实例代码
- php+jquery+ajax实现用户名验证
- jquery ajax+mysql+php实现数据库验证用户名是否存在
- php+jquery+ajax实现用户名验证
- php+jquery+ajax实现用户名验证
- 用于验证用户名是否可用的php ajax实现代码
- php+jquery+ajax实现用户名验证
- ajax+javascript+php实现注册用户名无刷新验证
- Struts2&ajax实现用户名唯一验证案例
- jsp+ajax实现无刷新(鼠标离开文本框即验证用户名)实现思路
- Asp.net2005不用Ajax实现无刷新验证用户名、密码和中文验证码
- ajax,servlet实现无刷新验证用户名是否存在
- PHP+Ajax异步通讯实现用户名邮箱验证是否已注册( 2种方法实现)
- Ajax实现用户名验证
- AJAX实现用户名验证
- Ajax使用原生态JS实现用户名是否存在验证
- springmvc+jquery+ajax实现异步用户名验证
- 使用Ajax实现无刷新用户名验证和分页的效果(一)
- jsp注册页面,Ajax实现验证用户名是否存在,密码是否一致,当不存在时,注册按钮变成灰色。
- AJAX 用户唯一性验证实现代码