PHP+AJAX实现无刷新注册(带用户名实时检测)
2023-06-13 09:13:47 时间
<tablewidth="831"border="0"align="center"cellpadding="0"cellspacing="0">
<trstyle="display:none">
<tdheight="35"align="center"id="result"></td>
</tr>
</table>
<tablewidth="100%"height="256"border="0"align="center"cellpadding="1"cellspacing="1">
<tr>
<tdwidth="150"align="left"bgcolor="#FFFFFF"> ·用户名称: </td>
<tdwidth="310"align="center"bgcolor="#FFFFFF">
<inputname="username"type="text"class="inputtext"id="username"
<fontcolor="#FF6633">*</font></td>
<tdalign="left"bgcolor="#FFFFFF"id="check">4-16个字符,英文小写、汉字、数字、最好不要全部是数字。</td>
</tr>
<tr>
<tdwidth="150"align="left"bgcolor="#FFFFFF"> ·用户密码:</td>
<tdwidth="310"align="center"bgcolor="#FFFFFF">
<inputname="userpwd"type="password"class="inputtext"id="userpwd"
<fontcolor="#FF6633">*</font> </td>
<tdalign="left"bgcolor="#FFFFFF"id="pwd">密码字母有大小写之分。6-16位(包括6、16),限用英文、数字。</td>
</tr>
<tr>
<tdwidth="150"align="left"bgcolor="#FFFFFF"> ·重复密码:</td>
<tdwidth="310"align="center"bgcolor="#FFFFFF">
<inputname="reuserpwd"type="password"class="inputtext"id="reuserpwd"
<tdalign="left"bgcolor="#FFFFFF"id="repwd">请再次输入登录密码。</td>
</tr>
</table>
如图:
functionsend_request(url){//初始化,指定处理函数,发送请求的函数
http_request=false;
//开始初始化XMLHttpRequest对象
if(window.XMLHttpRequest){//Mozilla浏览器
http_request=newXMLHttpRequest();
if(http_request.overrideMimeType){//设置MIME类别
http_request.overrideMimeType("text/xml");
}
}
elseif(window.ActiveXObject){//IE浏览器
try{
http_request=newActiveXObject("Msxml2.XMLHttp");
}catch(e){
try{
http_request=newActiveXobject("Microsoft.XMLHttp");
}catch(e){}
}
}
if(!http_request){//异常,创建对象实例失败
window.alert("创建XMLHttp对象失败!");
returnfalse;
}
http_request.onreadystatechange=processrequest;
//确定发送请求方式,URL,及是否同步执行下段代码
http_request.open("GET",url,true);
http_request.send(null);
}
//处理返回信息的函数
functionprocessrequest(){
if(http_request.readyState==4){//判断对象状态
if(http_request.status==200){//信息已成功返回,开始处理信息
document.getElementById(reobj).innerHTML=http_request.responseText;
}
else{//页面不正常
alert("您所请求的页面不正常!");
}
}
}
functionusercheck(obj){
varf=document.reg;
varusername=f.username.value;
if(username==""){
document.getElementById(obj).innerHTML="<fontcolor=red>用户名不能为空!</font>";
f.username.focus();
returnfalse;
}
else{
document.getElementById(obj).innerHTML="正在读取数据...";
send_request("checkuserreg.php?username="+username);
reobj=obj;
}
}
functionpwdcheck(obj){
varf=document.reg;
varpwd=f.userpwd.value;
if(pwd==""){
document.getElementById(obj).innerHTML="<fontcolor=red>用户密码不能为空!</font>";
f.userpwd.focus();
returnfalse;
}
elseif(f.userpwd.value.length<6){
document.getElementById(obj).innerHTML="<fontcolor=red>密码长度不能小于6位!</font>";
f.userpwd.focus();
returnfalse;
}
else{
document.getElementById(obj).innerHTML="<fontcolor=red>密码符合要求!</font>";
}
}
functionpwdrecheck(obj){
varf=document.reg;
varrepwd=f.reuserpwd.value;
if(repwd==""){
document.getElementById(obj).innerHTML="<fontcolor=red>请再输入一次密码!</font>";
f.reuserpwd.focus();
returnfalse;
}
elseif(f.userpwd.value!=f.reuserpwd.value){
document.getElementById(obj).innerHTML="<fontcolor=red>两次输入的密码不一致!</font>";
f.reuserpwd.focus();
returnfalse;
}
else{
document.getElementById(obj).innerHTML="<fontcolor=red>密码输入正确!</font>";
}
}
不难看出,数据是通过异步传输到checkuserreg.php接着回送回信息显示出来来达到实时检测用户名的目的,至于密码,只作了长度的实时判断,有兴趣的朋友可以扩充功能。来看下checkuserreg.php到底都做了什么:
header("Content-Type:text/html;charset=GB2312");//避免输出乱码
include("inc/config.inc.php");//包含数据库基本配置信息
include("inc/dbclass.php");//包含数据库操作类
$username=trim($_GET["username"]);//获取注册名
//-----------------------------------------------------------------------------------
$db=newdb;//从数据库操作类生成实例
$db->mysql($dbhost,$dbuser,$dbpassword,$dbname);//调用连接参数函数
$db->createcon();//调用创建连接函数
//-----------------------------------------------------------------------------------
$querysql="selectusernamefromcr_userinfowhereusername="$username"";//查询会员名
$result=$db->query($querysql);
$rows=$db->loop_query($result);
//若会员名已注册
//-----------------------------------------------------------------------------------
if($rows){
echo"<fontcolor=red>此会员名已被注册,请更换会员名!</font>";
}
//会员名未注册则显示
//-----------------------------------------------------------------------------------
else{
echo"<fontcolor=red>此会员名可以注册!</font>";
}
if($action==reg){
$addsql="insertintocr_userinfo
values(0,"$username","$userpwd","$time",50,1,"$userquestion","$useranswer")";
$db->query($addsql);
echo"<imgsrc=images/pass.gif><fontcolor=red>恭喜您,注册成功!请点击<ahref=login.php>这里</a>登陆!</font>";
}
$db->close();//关闭数据库连接
?>
注释写的还算详细,大家应该都能看懂,再看信息合法后我们提交注册信息实现无刷新注册的PHP代码,senduserinfo.php:
header("Content-Type:text/html;charset=GB2312");//避免输出乱码
include("inc/config.inc.php");//包含数据库基本配置信息
include("inc/dbclass.php");//包含数据库操作类
$username=trim($_GET["username"]);//获取注册名
$userpwd=md5(trim($_GET["userpwd"]));//获取注册密码
$time=date("Y-m-d");
//-----------------------------------------------------------------------------------
$db=newdb;//从数据库操作类生成实例
$db->mysql($dbhost,$dbuser,$dbpassword,$dbname);//调用连接参数函数
$db->createcon();//调用创建连接函数
//-----------------------------------------------------------------------------------
//开始插入数据
//-----------------------------------------------------------------------------------
$addsql="insertintocr_userinfovalues(0,"$username","$userpwd","$time",50,1,"$userquestion","$useranswer")";
$db->query($addsql);
echo"<imgsrc=images/pass.gif><fontcolor=red>恭喜您,注册成功!请点击<ahref=login.php>这里</a>登录!</font>";
$db->close();//关闭数据库连接
?>
OK!!大功告成,来看看效果图:
1.
3.
4.
5.
怎么样?还不错吧,贴了这么多累死了,希望大家喜欢~~~~
相关文章
- php 全部替换字符串,php如何批量替换字符串
- PHP案例:解析一个配置文件
- PHP反序列化漏洞
- php new reflectionclass,PHP: ReflectionClass – Manual
- 简单几行PHP代码 搞定Slave数据库的连接平均分布
- PHP连接MySQL数据库的步骤与方法(php如何连接mysql)
- 数据PHP编程:从MySQL数据库中取出数据(php取mysql)
- 数据PHP简单操作实现MySQL数据输出(php输出mysql)
- 一步到位:Linux下快速搭建PHP环境(linux一键php环境搭建)
- php windows与linux下的路径区别详解编程语言
- 网站利用 PHP 与 MySQL 构建网站.(php和mysql开发)
- Oracle与PHP:实现服务器端程序互通(oracle和php)
- 驱动开发:PHP框架与MongoDB的结合(php框架mongodb)
- 版本Linux查看PHP服务器版本号简易指南(linux 查看 php)
- PHP Redis实时监控系统的应用(php redis 监控)
- PHP连接MSSQL实现注册功能(php注册写入mssql)
- PHP与MSSQL数据库之间的转义学习(php mssql 转义)
- PHP实现华丽丽的图片上传 MySQL储存精妙记录(php上传图片mysql)
- PHP图片上传至MySQL:实现快速可靠的数据存储(php图片上传mysql)
- 用PHP实现Redis的键值存储(redis键值php)
- PHP+AJAX实现无刷新注册(带用户名实时检测)
- 两个开源的Php输出Excel文件类
- 让PHP支持断点续传的源码
- PHP中利用substr_replace将指定两位置之间的字符替换为*号
- php入门学习知识点三PHP上传
- php数组函数序列之array_sum()-计算数组元素值之和
- JS中encodeURIComponent函数用php解码的代码
- 解析PHP汉字转换拼音的类
- 浅析PHP程序防止ddos,dns,集群服务器攻击的解决办法
- 浅析PHP中的字符串编码转换(自动识别原编码)
- php使用mkdir创建多级目录入门例子
- PHP和Shell实现检查SAMBA与NFSServer是否存在