Ajax+PHP動態驗證註冊用戶名是否可用

一個基礎都不太熟的小菜鳥要搞些東西有時候還真挺不容易,這邊就註冊用戶時即時檢查用戶名是否可用來簡單的學學ajax吧。javascript

去參考其餘CMS開源系統中的代碼,太過繁雜,因而本身找了些資料整理了一個簡單的例子php

參考資料 《Ajax+PHP程序設計實戰詳解》,位於第九章的例子html

主要就是將文件中的檢測修改成 查詢數據庫java

多的不說直接上代碼吧,須要的能夠多看下注釋 mysql

Login.html 文件以下ajax

  
  
           
  
  
  1. <html> 
  2. <head> 
  3. <title>用戶註冊</title> 
  4. <script type="text/javascript"> 
  5. var xmlHttp; 
  6. function createXMLHttpRequest() 
  7.     //在IE下建立XMLHttpRequest對象 
  8.     try 
  9.     { 
  10.         xmlHttp = new ActiveXObject("Msxml2.XMLHTTP"); 
  11.     } 
  12.     catch(e) 
  13.     {        
  14.     try 
  15.     { 
  16.         xmlHttp = new ActiveXObject("Microsoft.XMLHTTP"); 
  17.     }  
  18.     catch(oc) 
  19.     { 
  20.         xmlHttp = null
  21.     } 
  22.     } 
  23.     //在Mozilla和Safari等非IE瀏覽器下建立XMLHTTPRequest對象 
  24.     if(!xmlHttp && typeof XMLHttpRequest != "undefined")  
  25.     { 
  26.         xmlHttp = new XMLHttpRequest(); 
  27.     } 
  28.     return xmlHttp; 
  29. //方式請求 
  30. function startRequest() 
  31.     //獲取用戶輸入的信息 
  32.     var UserID = document.getElementById("UserID").value; 
  33.     //輸入的用戶名是否爲空 
  34.     if(UserID!="") 
  35.     { 
  36.         //建立XMLHttpRequest對象 
  37.         createXMLHttpRequest(); 
  38.         var url = "Login.php?UserID="+encodeURI(UserID); //指定url 
  39.         xmlHttp.open("GET",url,true); 
  40.         xmlHttp.onreadystatechange = handleStateChange;  //指定回調函數 
  41.         xmlHttp.send(null);   
  42.     } 
  43.     else 
  44.     { 
  45.         alert("請填寫您的用戶名!"); 
  46.     } 
  47. function handleStateChange() 
  48.     if(xmlHttp.readyState<4
  49.     { 
  50.         span.innerHTML="正在讀取數據..."
  51.     } 
  52.  
  53.     if(xmlHttp.readyState==4) 
  54.     { 
  55.         if(xmlHttp.status == 200)  
  56.         { 
  57.             span.innerHTML=xmlHttp.responseText; 
  58.         } 
  59.         else{ 
  60.             alert("錯誤,請求頁面異常!"); 
  61.         } 
  62.     } 
  63. }  
  64. </script> 
  65. </head> 
  66. <body> 
  67. <form action="#"> 
  68. <center> 
  69. <h3>Ajax+php驗證用戶名是否可用</h3> 
  70. <table> 
  71. <tr> 
  72. <td>用戶名:  <input type="text" name="UserID" id="UserID" onchange="startRequest()" /> 
  73. <span id="span"></span></td> 
  74. </tr> 
  75. <tr> 
  76. <td>密&nbsp;&nbsp;碼:   <input type="text" name="Pwd" id="Pwd"/></td> 
  77. </tr> 
  78. <tr> 
  79. <td> 
  80. &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
  81. <input type="button" name="Reg" id="Reg" value="註冊"/> 
  82. <input type="button" name="Log" id="Log" value="登陸"/> 
  83. </td> 
  84. </tr> 
  85. </table> 
  86. </center> 
  87. <form>  
  88. </body> 
  89. </html> 

Login.php文件源碼以下sql

  
  
           
  
  
  1. <?php 
  2. //設置PHP的顯示語言 
  3. header('Content-Type:text/html;charset=UTF-8'); 
  4. //讓程序先等待一秒 
  5. sleep(1);  
  6. //獲取輸入的用戶名 
  7. $tmp=$_GET["UserID"]; 
  8. $db_host="localhost"
  9. $db_name="canphp"
  10. $db_username="root"
  11. $db_password="rootpass"
  12. $link = mysql_connect($db_host$db_username,$db_password ) or  die ('Can\'t connet db!' . mysql_error()); 
  13. mysql_select_db($db_name$linkor die ('Can\'t select db : ' . mysql_error()); 
  14. $query="select * from cp_user where username='$tmp'"
  15. $result = mysql_query($queryor  die ($query.mysql_error()); 
  16. $rows=mysql_num_rows($result); 
  17. if($rows>0) 
  18. { //存在記錄
  19.    echo "用戶名已存在";  
  20. }else
  21.   echo("尚未被註冊!");  
  22. }  
  23. ?> 

文件中的部分信息須要按需修改下,如服務端處理文件中的數據庫及表信息數據庫

先記錄到這邊吧,具體的原理也還不太懂,之後有用到 理解了再作補充 :-)瀏覽器

相關文章
相關標籤/搜索