php+ajax用户注册验证用户是否存在的完整实例

发布时间:2020-12-22编辑:脚本学堂
本文介绍下,php与ajax结合,实现用户注册时验证用户是否存的一个实例代码,有需要的朋友,参考下吧。

一个完整理的php+mysql+ajax的用户注册实例程序,可以提供检测用户名是否被注册。

本程序包括:
reg.html 用户注册html页面
reg.php php处理代码
conn.php 数据库教程连接文件

1,reg.html代码

<!doctype html public "-//w3c//dtd xhtml 1.0 transitional//en" "http://www.w3.org/tr/xhtml1/dtd/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html; charset=gb2312" />
<title>php+ajax用户注册验证用户是否在存_www.jb200.com</title>
<style type="text/css教程">
body{
 font-size:12px;
 text-align:center;
}
.text{
 width:180px;
 height:12px;
}
p{
 width:600px;
 height:20px;
 line-height:20px;
 text-align:left;
}
p label{
 display:block;
 width:80px;
 height:20px;
 line-height:20px;
 float:left;
 text-align:right;
}
p span{
 margin-left:10px;
}
</style>
</head>
<body>
<script language="网页特效">
function createxmlhttprequest(){
 var xmlhttp;
 if(window.activexobject){
  xmlhttp = new activexobject("microsoft.xmlhttp");
 }else if(window.xmlhttprequest){
  xmlhttp = new xmlhttprequest();
 }
 return xmlhttp;
}

function checkname(){
 var name = document.getelementbyid(name); //获取用户名文本框
 var span = document.getelementbyid(name_info); //获取用于显示结果的span标记
 if(name.value.length <= 4){
  span.style.color = #ff0000; //设置span标记内的字体颜色为红色
  span.innerhtml = 用户名长度不能少于4个字符!; //span标记内容
  return false;
 }
 var xmlhttp = createxmlhttprequest();//创建异步请求对象
 var time = new date().gettime();
 var url = reg.php?act=reg&name= + name.value.tolowercase() + &tmp= + time;//构造出请求地址
 xmlhttp.open("get",url,true); //建立一个异步请求
 /*这里我们使用get方式请求
   post方式的请求基本差不多,朋友们自己试试如果不行,在下面给我留言*/
 xmlhttp.onreadystatechange = function(){ //监视请求状态
  span.style.color = #ff9900;
  span.innerhtml = 查询中,请稍候!;
  if(xmlhttp.readystate == 4 && xmlhttp.status == 200){
   if(xmlhttp.responsetext.indexof(no) != -1){ //如果服务器返回的信息中有no
    span.style.color = #cb2121; //设置span标记颜色为红色
    span.innerhtml = 用户名[ + name.value + ]已经被别的用户使用!;
   }else{//如果返回信息中没有no
    span.style.color = #00a800;//设置颜色为绿色
    span.innerhtml = 恭喜您,该用户名未被注册!;
   }
   return true;
   delete xmlhttp; //删除请求对象
  }
 }
 xmlhttp.send(null); //发送请求
}
</script>
<form method="post" action="reg.php">
<p><label>用户名:</label><input type="text" class="text" id="name" name="user_name"/><span id="name_info"></span></p>
<p><label></label><input type="button" value="检查用户名" onclick="checkname()"/></p>
<p><label>密码:</label><input type="password" class="text" /></p>
<p><label>&nbsp;</label><input type="submit" value="注册" /></p>
</form>
</body>
</html>

2,reg.php 用户注册程序

<?php
/**
* 用户注册程序
* edit www.jb200.com
*/
include("conn.php");
$name=$_get[name];
$name=urldecode($name);

if(strlen($name)>0){
 $sql="select username from registration where username = $name";
 $result=mysql_query($sql);
 $row=mysql_fetch_array($result);
 
 if($_get[act] == reg){ 
  if(!empty($row[username])){ //只要注册用户名为kaixin的时候,注册页面就会用红色字体提示次用户已被注册! 
  echo no; 
  }else{ 
  echo yes; 
  } 
 } 
}
?>

3,conn.php 数据库文件

<?php
/* created on 下午12:08:25*/
 $conn=@mysql_connect("localhost","root","")or die("www.jb200.com提示你:连接失败!");
 mysql_select_db("reg",$conn);
 mysql_query("set names gbk");
?>

4,附,registration 数据表结构

-- phpmyadmin sql dump
-- version 2.11.2.1
-- http://www.phpmyadmin.net
--
-- 主机: localhost
-- 生成日期: 2009 年 05 月 20 日 05:29
-- 服务器版本: 5.0.45
-- php 版本: 5.2.5

set sql_mode="no_auto_value_on_zero";

--
-- 数据库: `reg`
--

-- --------------------------------------------------------

--
-- 表的结构 `registration` phpmyadmin导入数据
--

create table `registration` (
  `id` tinyint(6) not null auto_increment,
  `username` varchar(14) not null comment 注册用户名,
  `userpwd` varchar(14) not null comment 注册密码,
  primary key  (`id`)
) engine=innodb  default charset=gb2312 auto_increment=6 ;

--

-- 导出表中的数据 `registration`
--

insert into `registration` (`id`, `username`, `userpwd`) values
(1, admin, admin888),
(2, lyn, www.jb200.com),
(3, xiaot, xiaot),
(4, xiaoe, xiaoe),
(5, 脚本学堂 www.jb200.com, 5201314110);