Ajax 验证用户名唯一性数据校验php

/ / 2016-10-10   阅读:2486
注:本文中使用到的一些类库在前面文章都能找到源代码,我会在文中指明链接所在,为了缩短文章篇幅,由此带来的阅读不便,敬请谅解。 本文要说明的是如何使用 Ajax 验证用户名是否被注册。当您注册某网站的时候,输...
注:本文中使用到的一些类库在前面文章都能找到源代码,我会在文中指明链接所在,为了缩短文章篇幅,由此带来的阅读不便,敬请谅解。
本文要说明的是如何使用 Ajax 验证用户名是否被注册。当您注册某网站的时候,输入用户名,鼠标光标一离开,就会提示,您的用户名是否被注册,本文将为您展现程序流程。

首先,我们得先需要一个表单页面 index.html,代码清单如下:

index.html
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">  
<html>  
<head>  
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">  
<script type="text/javascript" src="js/ajax.js"></script> <!-- 载入 Ajax 类库 -->  
<title>Ajax 验证用户名</title>  
<style type="text/css">  
    body {  
        font-size:12px;   
    }  
</style>  
</head>  
<body>  
    <form action="reg.php" method="post">  
        username:<input type="text" value="" onBlur="validate(this.value);" name="username"> <span id="userText"></span><br />  
        password:<input type="password" value="" name="password"><br />  
        <input type="button" value="Submit">  
    </form>  
</body>  
</html>  

代码清单中,我们加载了一个 Ajax 类库,这个类库可以在 http://blog.csdn.net/liruxing1715/article/details/7212781 文章中找到(并附有使用方法);放置了一个用户名文本框(input);并且放置了一个 onBlur(鼠标光标离开事件);用户名文本框后面放置一个 SPAN 标签,用于显示提示信息。
当您输入用户名后,就会触发事件 validate(val) 函数,validate(val) 的函数代码清单如下:

<script type="text/javascript">  
    /** 
    * validate(val) 光标离开后触发事件 
    * @param string val 输入的文本 
    * @return string 返回验证是否成功 
    */  
    function validate(val) {  
        var userText = document.getElementById('userText'); // 获取 SPAN 对象  
        // 如果为空或者输入空格执行  
        if (!(val.match(/^\S+$/))) {  
            userText.innerHTML = '<font color="red">请输入用户名!</font>';  
        } else {  
            if (val.length<2) {  
                userText.innerHTML = '<font color="red">用户名个数必须大于两位!</font>';  
            } else {  
                var ajax = Ajax(); // 创建 Ajax 对象  
                // 通过 Ajax POST 方法把用户名提交到 validate.php 进行验证用户名是否存在,并返回结果  
                ajax.post('validate.php', {username:val}, function(data){  
                    userText.innerHTML = data; // Ajax 返回的值显示在 SPAN 标签上    
                });  
            }  
        }  
    }  
</script>  

validate.php (验证文件)
<?php  
require_once './config.inc.php';  
$m = new Model(); // 实例化一个数据库操作类  
$username = $_POST['username']; // 接受传递过来的用户名  
$count = $m->total('user', "name='{$username}'"); // $count 用户名在数据库出现的次数  
if (intval($count)>0) {  
    echo '<font color="red">抱歉,'. $username .'已被注册,请更换!</font>';  
} else {  
    echo '<font color="green">恭喜,'. $username .'可以注册!</font>';  
}  
?>  
validate.PHP 文件中的 config.inc.php 文件主要就是定义一些常量,比如:数据库用户名、数据库密码、主机……,数据库连接类库(Db.class.php)和数据库操作类库(Model.class.php),请参考文章 http://blog.csdn.net/liruxing1715/article/details/7176671,附有使用方法。数据库结构一个主键、一个字段 name 即可。

程序效果图:

我要评论

昵称:
验证码:

最新评论

共0条 共0页 10条/页 首页 上一页 下一页 尾页
意见反馈