手机版

php注册系统并使用Xajax验证用户名是否立即被占用

时间:2021-09-03 来源:互联网 编辑:宝哥软件园 浏览:

在php中使用Xajax可以立即与数据库交互

给用户带来更好的体验

主要应用是即时的、不刷新的网页登录系统

它也可以用于注册系统

立即验证用户名是否被占用

一、基本目标

首先,mysql中有一个用户信息表user

编写用户注册系统,注册按钮首先被禁用

当用户输入完用户名后,检查用户名是否立即被占用。如果是,禁用注册按钮并弹出一个对话框

如果用户输入的用户名未被占用,解锁注册按钮,但如果用户两次输入的密码不一致,也不允许用户注册

在用户满足所有注册条件之前,它不会被释放

成功的用户注册可以成功地将用户名和密码添加到数据库中,如上图aa和B所示:

二、基本思路

因为第一个输入框在失去焦点时需要与数据库交互,所以它需要使用php的Xajax技术

关于什么是失去焦点,请看我之前的文章《【JavaScript】组件焦点与页内锚点间传值》(点击打开链接)。

关于什么是PHP的Xajax技术以及如何配置,请参考我刚刚写的文章《【php】Xajax Helloworld》(点击打开链接)

而第二输入框和第三输入框不需要和数据库交互,可以在前台判断,所以只能用javascript。

下面的代码描述将不再讨论这个问题,因为我已经在文章《【JavaScript】表单即时验证,不成功不让提交》中详细讨论过这个问题(单击打开的链接)。

第三,生产过程

有两个页面,一个是用户填写注册信息的xajaxrec.php页面,另一个是用户注册信息录入数据库处理页面下的xajxrecsuc.phpxajxrecsuc.php代码,与之前的《【php】数据库的增删改查和php与javascript之间的交互》的dbinsert.php基本相同(点击打开链接)。由于作者使用的是同一个用户表和同一个数据库,所以不用修改代码就可以使用,所以他把“添加成功”四个字符改成了“注册成功”

!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Transitional//EN ' ' http://www . w3 . org/TR/XHTML 1/DTD/XHTML L1-Transitional . DTD ' html xmlns=' http://www . w3 . org/1999/XHTML ' head meta http-equiv=' Content-Type ' Content=' text/html;Charset=utf-8'/title成功注册/title /head body?PHP $ username=$ _ REQUEST[' username '];$ password=$ _ REQUEST[' password '];$con=mysql_connect('localhost ',' root ',' root ');if(!$con){ die('连接失败!');} mysql_select_db('test ',$ con);mysql_query('插入用户(用户名,密码)值(')。$username。',''.$password。');');MySQL _ close($ con);脚本警报(“注册成功”);window . location . href=' xajaxreg . PHP ' rel=' external no follow ';/script /body /html,然后关注这个xajaxrec.php:

?php包括‘xajax _ core/xajax . Inc . PHP’;$ xajax=new xajax();//首先在xajax中声明一个check函数$ xajax-registerFunction(' check ');//这个检查函数需要从前台进行用户名函数检查($ username){ $ ORPS=new xajaxresponse();//连接到数据库,查看是否没有$ con=MySQL _ connect ('localhost ',' root ',' root ')这样的用户名;if(!$con){ die('连接失败!');} mysql_select_db('test ',$ con);$ dbusername=null$ result=MySQL _ query(' select * from user,其中username=' ')。$username。';');while($ row=MySQL _ fetch _ array($ result)){ $ db username=$ row[' username '];}//如果没有数据,就不可能查出数据,所以分配了dbusername,所以如果(is_null($dbusername)){ //弹出,清除id为submitbtn的提交按钮的disabled属性,解锁disabled $ orps-alert(‘恭喜,这个用户名没被占用,可以注册’);$orps-clear('submitbtn ',' disabled ');} else{ //否则,弹出后会锁定submitbtn,并添加禁用属性$ orps-alert(‘用户名已被占用,请更改用户名’);$orps-assign('submitbtn ',' disabled ',' disabled ');}//人进门,然后三个xajax指定的动作MySQL _ close($ con);返回$ orps} $ xajax-process request();$ xajax-printJavaScript();DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Transitional//EN ' ' http://www . w3 . org/TR/XHTML 1/DTD/XHTML L1-Transitional . DTD ' html xmlns=' http://www . w3 . org/1999/XHTML ' head meta http-equiv=' Content-Type ' Content=' text/html;Charset=utf-8'/title用户注册/title /head body用户注册!-是表单上的最后一个onsubmit属性,因为当用户单击提交按钮时,他会在提交表单之前运行check()函数-formaction=' xajxregsuc.php '方法=' post' onsubmit=' return check()'!-但是当用户名的输入框失去焦点,也就是当用户输入完成,光标离开输入框时,立即调用xajax中的check函数,带过去的值就是这个输入框的内容-用户名:输入类型=' text ' name=' username ' on bulr=' XAJAX _ check(this。值);'/br/password:输入类型=' password ' name=' password ' id=' password '/br/!-要确认密码,只需调用下面的javascript check请再次输入密码:输入类型=' password ' name=' password confirm ' id=' password confirm ' on change=' check()'/br/输入类型=' submit ' id=' submit BTN ' value=' register ' disabled//form/body/html脚本函数check(){ var check=false;var password=document . getelementbyid(' password ')。价值;var pwdc=document . getelementbyid(' password confirm ')。价值;如果(密码!=pwdc) {alert('两次输入的密码不一致');check=false} else { check=true}退货支票;} /script现在在整个注册系统中完成。

四.观点

这个注册制度还是有缺陷的。首先,数据库操作中涉及的第一个处理框并不过滤有害的sql注入语句,所有的处理框和输入的凌乱字符即使在密码处理框中也可以释放。如果这些小细节是为了让网络系统在网络上运行,就必须加以改进。

以上就是本文的全部内容。希望对大家的学习有帮助,支持我们。

版权声明:php注册系统并使用Xajax验证用户名是否立即被占用是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。