Ajax实时验证用户名/邮箱等是否已经存在的代码打包_PHP教程
今天分享一个“利用Ajax技术来检测用户名是否存在”的例子。
利用Ajax技术来检测用户名是否存在的原理流程图:
最终结果截图:
代码解释:
①实现该功能的核心代码在ajax.js,需要另外引进
②给form命名,因为后面我们需要利用JS来取得input框中的value
③给input框添加一个“onblur”事件,即当“焦点”失去时触发该事件(即流程图的“触发控件”)
④用来放从服务器发送回来的数据(即“用户名已存在”等)
mysql_connect("localhost",'root','');
mysql_select_db('test');
$sql="select * from ajax where name='$_GET[id]'";
$query=mysql_query($sql);
if(is_array(mysql_fetch_array($query))){
echo "用户名已存在";
}else{
echo "用户名可以使用";
}
?>
代码解释:
通过ajax的open方法,将用户输入”用户名“通过id传递给进来(即$_GET[id]),此时将对指定的数据库表中进行查询,检查是否有存在该“用户名”
ajax.js
// JavaScript Document
var XHR; //定义一个全局对象
function createXHR(){ //首先我们得创建一个XMLHttpRequest对象
if(window.ActiveXObject){//IE的低版本系类
XHR=new ActiveXObject('Microsoft.XMLHTTP');//之前IE垄断了整个浏览器市场,没遵循W3C标准,所以就有了这句代码。。。但IE6之后开始有所改观
}else if(window.XMLHttpRequest){//非IE系列的浏览器,但包括IE7 IE8
XHR=new XMLHttpRequest();
}
}
function checkname(){
var username=document.myform.user.value;
createXHR();
XHR.open("GET","checkname.php?id="+username,true);//true:表示异步传输,而不等send()方法返回结果,这正是ajax的核心思想
XHR.onreadystatechange=byhongfei;//当状态改变时,调用byhongfei这个方法,方法的内容我们另外定义
XHR.send(null);
}
function byhongfei(){
if(XHR.readyState == 4){//关于Ajax引擎对象中的方法和属性,可以参考我的另一篇博文:http://www.cnblogs.com/hongfei/archive/2011/11/29/2265377.html
if(XHR.status == 200){
var textHTML=XHR.responseText;
document.getElementById('checkbox').innerHTML=textHTML;
}
}
}
代码解释:
①首先我们需要声明一个ajax引擎的对象:XHR(随便命名一个)
②因为微软的低版本IE和其他的浏览器创建ajax对象的方式不一样,现在IE和其他浏览器的市场份额几乎各占一半,所以我们得两方面都考虑到,IE-->ActiveXObject;其他-->XMLHttpRequest。我将她封装在一个函数中:createXHR
③我们在index.html中指定的当失去“焦点”时就会触发checkname()函数。那么我们如何将用户输入的“用户名”捕获呢?这里,利用js即可轻松捕获到document.myform.user.value(现在知道为何给form和input命名了吧,这一步对应流程图的“获得填写内容”),有兴趣的博友,可以试试在createXHR()的前一行敲行代码(alert(username)),将捕获到的用户名弹出试试看。
④Ajax引擎有几个方法和属性(可以参考我的另一篇博文:看图理解:普通交互方式和Ajax交互方式区别),使用之前我们得先调用函数craateXHR创建一个ajax对象
⑤有了ajax对象,有三个方法是必不可少的:open()、onreadystatechange、send()。
将请求发送到服务器,要使用open ()和send()方法
open()方法的第一个参数,指示采用GET或者POST方式进行传输。。。。。。
open()方法的第二个参数,指示要请求的URL地址(这里我们请求的是checkname.php文件),可以是绝对或相对地址
open()方法的第三个参数async指示是否采用异步请求,true为采用,这种情况下,通过ajax、js无需等待服务器响应,而是:①在等待服务器响应的同时执行其他脚本②当响应就绪后对响应进行处理。一般对一些小型的请求,async=false也是可以的,但此时就不要编写onreadystatechange 函数了
onreadystatechange事件:当ajax的属性readyState改变时,就触发此事件。在此事件中,当服务器响应已做好被处理的准备时(即readyState=4且status=200时),我们规定要让服务器做什么任务,这里我们规定将从数据库检索到的结果输出到id为”checkbox“的span标签中。
⑥通过checkname.php,查询数据库后,将得到查询结果(即服务器的响应,对应流程图中的”查询数据库“),此时数据还在ajax引擎中,如需获得该来自服务器的响应,我们需要使用XMLHttpRequest对象的responText或responseXML属性,并通过DOM属性innerHTML将从服务器响应回来的数据设置为id=”checkbox“的span标签的值
注:利用ajax监测邮箱是否存在一个道理,我们还可以利用ajax实时监测用户输入的密码强度,此时,需要用到可以把onblur事件改为onfocus事件。
原创 cnblogs 小飞
源码打包下载 /201112/yuanma/checkname_php.rar

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

Video Face Swap
완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











Redis는 5 가지 핵심 메모리 데이터 유형을 제공합니다 : 문자열 : 기본 문자열 저장, 증분/감소 작업을 지원합니다. 목록 : 양방향 링크리스트, 효율적인 인스션/삭제 작업. 세트 : 중복 제거 작업에 사용되는 순차 대표 세트. 해시 : 구조화 된 데이터를 저장하는 데 적합한 키-값 쌍 스토리지. ZSET : 순서 세트, 각 요소에는 분수가 있으며 분수별로 정렬 할 수 있습니다. 올바른 데이터 유형을 선택하는 것은 성능을 최적화하는 데 중요합니다.

다른 데이터베이스 시스템에서 열을 추가하기위한 구문은 크게 다르며 데이터베이스마다 다릅니다. 예를 들어 : MySQL : Alter Table 사용자는 열 이메일 Varchar (255)를 추가합니다. Postgresql : Alter Table 사용자는 열을 추가하여 varchar (255)가 널 고유하지 않음; Oracle : Alter Table 사용자 이메일 추가 Varchar2 (255); SQL Server : Alter Table 사용자는 이메일 VARCH 추가

메일 마케팅 캠페인을 할 때 까다로운 문제가 있습니다. HTML 형식으로 효율적으로 메일을 작성하고 보내는 방법. 기존의 접근 방식은 수동으로 코드를 작성하고 SMTP 서버를 사용하여 이메일을 보내는 것이지만 이는 시간이 많이 걸릴뿐만 아니라 오류가 발생하기 쉽습니다. 여러 솔루션을 시도한 후 HTML 메일을 신속하게 만들고 보내는 데 도움이되는 간단하고 사용하기 쉬운 RESTAPI 인 Duwa.io를 발견했습니다. 개발 프로세스를 더욱 단순화하기 위해 작곡가를 사용하여 duwa.io의 PHP 라이브러리 인 CaptainDoe/Duwa를 설치하고 관리하기로 결정했습니다.

데비안 메일 서버가 안정적으로 실행되도록 효과적인 모니터링 메커니즘이 필요합니다. 이 기사에서는 로그 점검, 모니터링 도구 및 경보 시스템 설정을 포함한 몇 가지 모니터링 방법을 소개합니다. 1. 로그 로그 Debian Mail 서버의 로그 파일 모니터링은 일반적으로 /var/log/mail.log와 같은/var/log/directory에 있습니다. 이러한 로그를 정기적으로 확인하면 잠재적 인 문제를 적시에 식별하는 데 도움이 될 수 있습니다. 2. 모니터링 도구 및 스크립트 예제 다음은 CPU, 메모리 및 디스크 공간 사용 모니터링 및 전자 메일 알람 전송을위한 몇 가지 Bash 스크립트 예제를 제공합니다.

Nginx 가상 호스트 구성 : 서버 정원 주변에서 재생하는 한 서버가 어떻게 여러 웹 사이트를 동시에 제공하는지 생각해 본 적이 있습니까? 답은 Nginx 가상 호스트 구성입니다. 이 기사에서는 Nginx Virtual Host 구성 팁으로 안내하여 "서버 가든"을 효율적으로 관리하고 일반적인 함정을 피할 수 있습니다. 읽은 후에는 가상 호스트를 쉽게 구성하고 그 뒤에있는 메커니즘을 이해하고 효율적이고 안정적인 nginx 구성 파일을 작성할 수 있습니다. 기본 준비 : 도구 상자를 시작하기 전에 NGINX가 설치되어 있는지 확인하고 기본 Linux 명령 및 구성 파일 구조를 이해해야한다는 것을 잊지 마십시오. 이 단계를 완료했다고 가정하면 Nginx를 여기에 설치하는 방법을 설명하지 않습니다. 기억하다

상위 10 개 디지털 가상 통화 앱은 다음과 같습니다. 1. OKX, 2. BINANCE, 3. GATE.IO, 4. COINBASE, 5. KRAKEN, 6. HUOBI, 7. KUCOIN, 8. BITFINEX, 9. BITSTAMP, 10. POLONIEX. 이러한 거래소는 거래량, 사용자 경험 및 보안과 같은 요소를 기반으로 선택되며 모두 다양한 디지털 통화 거래 서비스 및 효율적인 거래 경험을 제공합니다.

2025 년 Bitget에 등록하는 단계에는 다음이 포함됩니다. 1. 유효한 이메일 또는 휴대폰 번호 및 안정적인 네트워크를 준비합니다. 2. Bitget 공식 웹 사이트를 방문하십시오. 3. 등록 페이지를 입력하십시오. 4. 등록 방법을 선택하십시오. 5. 등록 정보를 작성하십시오. 6. 사용자 계약에 동의합니다. 7. 완전한 검증; 8. 검증 코드를 얻고 입력하십시오. 9. 완전한 등록. 등록 후 계정에 로그인하고 KYC IDETITION VERIFICE를 수행하며 계정의 보안을 보장하기 위해 보안 조치를 설정하는 것이 좋습니다.

우편함을 효율적으로 관리하고 메일을 얻고 삭제하는 방법 : 메일을 처리 해야하는 프로젝트를 개발할 때 어려운 문제가 발생했습니다. 여러 방법을 시도한 후 PHP-IMAP/PHP-IMAP 라이브러리가 내 문제를 해결할뿐만 아니라 프로그램의 효율성과 안정성을 크게 향상 시킨다는 것을 알았습니다.
