久久久久久久av_日韩在线中文_看一级毛片视频_日本精品二区_成人深夜福利视频_武道仙尊动漫在线观看

      <tfoot id='oTi33'></tfoot>

    1. <i id='oTi33'><tr id='oTi33'><dt id='oTi33'><q id='oTi33'><span id='oTi33'><b id='oTi33'><form id='oTi33'><ins id='oTi33'></ins><ul id='oTi33'></ul><sub id='oTi33'></sub></form><legend id='oTi33'></legend><bdo id='oTi33'><pre id='oTi33'><center id='oTi33'></center></pre></bdo></b><th id='oTi33'></th></span></q></dt></tr></i><div class="qwawimqqmiuu" id='oTi33'><tfoot id='oTi33'></tfoot><dl id='oTi33'><fieldset id='oTi33'></fieldset></dl></div>

      <legend id='oTi33'><style id='oTi33'><dir id='oTi33'><q id='oTi33'></q></dir></style></legend>
    2. <small id='oTi33'></small><noframes id='oTi33'>

          <bdo id='oTi33'></bdo><ul id='oTi33'></ul>

        ajax+php實現(xiàn)用戶登錄

        一.ajax完成用戶名異步檢驗 html代碼: !DOCTYPE htmlhtml lang="en"head meta charset="UTF-8" title用戶名是否存在/title/headbodyform action="" method="post" table tr td用戶名/td tdinput type="text" name="username" placehol
          <tbody id='vRZN6'></tbody>
      1. <tfoot id='vRZN6'></tfoot>
        <i id='vRZN6'><tr id='vRZN6'><dt id='vRZN6'><q id='vRZN6'><span id='vRZN6'><b id='vRZN6'><form id='vRZN6'><ins id='vRZN6'></ins><ul id='vRZN6'></ul><sub id='vRZN6'></sub></form><legend id='vRZN6'></legend><bdo id='vRZN6'><pre id='vRZN6'><center id='vRZN6'></center></pre></bdo></b><th id='vRZN6'></th></span></q></dt></tr></i><div class="qwawimqqmiuu" id='vRZN6'><tfoot id='vRZN6'></tfoot><dl id='vRZN6'><fieldset id='vRZN6'></fieldset></dl></div>
      2. <small id='vRZN6'></small><noframes id='vRZN6'>

            <bdo id='vRZN6'></bdo><ul id='vRZN6'></ul>

          • <legend id='vRZN6'><style id='vRZN6'><dir id='vRZN6'><q id='vRZN6'></q></dir></style></legend>

                  一.ajax完成用戶名異步檢驗
                  html代碼:
                  <!DOCTYPE html>
                  <html lang="en">
                  <head>
                      <meta charset="UTF-8">
                      <title>用戶名是否存在</title>
                  </head>
                  <body>
                  <form action="" method="post">
                      <table>
                          <tr>
                              <td>用戶名</td>
                              <td><input type="text" name="username" placeholder="請輸入用戶名" class="name" id="name" ></td>
                              <td><span class="note"></span></td>
                          </tr>
                          <tr>
                              <td>密碼</td>
                              <td><input type="password" name="password" class="pwd" ></td>
                          </tr>
                          <tr><td><input type="submit" id="check"></td></tr>
                      </table>
                  </form>
                  </body>
                  </html>
                  js代碼(當(dāng)鼠標(biāo)移開用戶名標(biāo)簽時,ajax引擎自動與后臺實現(xiàn)異步交互,從而完成驗證)
                  <script type="text/javascript">
                      var name=document.getElementById('name');
                      var pwd=document.getElementsByClassName('pwd')[0];
                      document.querySelector('.name').onblur=function () {
                          document.querySelector('.note').innerHTML='驗證中……';
                          //1.創(chuàng)建對象
                          var xhr=new XMLHttpRequest();
                          //2.設(shè)置請求行(get請求數(shù)據(jù)寫在url后面)
                          xhr.open('post','check.php');
                          //3.設(shè)置請求頭(get請求可以省略,post不發(fā)送數(shù)據(jù)也可以省略)
                          xhr.setRequestHeader('content-type',"application/x-www-form-urlencoded");
                          //3.5注冊回調(diào)函數(shù)
                          xhr.onload=function () {
                              if(xhr.status==200 && xhr.readyState==4)
                              {
                                  console.log(xhr.responseText);
                                  var data=JSON.parse(xhr.responseText);
                                  console.log(data);
                                  if(data.flag==3) {
                                      document.querySelector('.note').innerHTML = data.msg;
                                  }
                              }
                          };
                          //4.請求主體發(fā)送(get請求為空,或者寫null,post請求數(shù)據(jù)寫在這里,如果沒有數(shù)據(jù),直接為空或者寫null)
                          //post請求發(fā)送數(shù)據(jù) 寫在send中
                          //key=value&key2=value2
                          xhr.send("username="+document.getElementById('name').value);
                      };
                  </script>
                  后臺php文件(check_username.php):
                  <?php
                  //print_r($_POST);
                  $flag=0;
                  $msg='failure';
                  $username=isset($_POST['username'])?$_POST['username']:"";
                  $password=isset($_POST['password'])?$_POST['password']:"";
                  
                  if($username==='admin'){
                      $flag=3;
                      $msg='用戶名正確';
                  }else {
                      $flag=3;
                      $msg='用戶名不存在';
                  }
                  ?>

                  知識點-----AJAX - onreadystatechange 事件

                  當(dāng)發(fā)送一個請求后,客戶端需要確定這個請求什么時候會完成,因此,XMLHttpRequest對象提供了onreadystatechange事件機制來捕獲請求的狀態(tài),繼而實現(xiàn)響應(yīng)。

                   當(dāng)請求被發(fā)送到服務(wù)器時,我們需要執(zhí)行一些基于響應(yīng)的任務(wù)。

                   每當(dāng)readyState改變時,就會觸發(fā)onreadystatechange事件。

                   readyState屬性存有 XMLHttpRequest 的狀態(tài)信息。

                   下面是 XMLHttpRequest 對象的三個重要的屬性:

                  注意:POST請求不加請求頭,數(shù)據(jù)是傳不到后臺的

                  二.提交時完成后用戶名與密碼的驗證

                  創(chuàng)建一個后臺文件(check_login.php)用來驗證用戶名與密碼

                  新建php文件check_login.php(用戶數(shù)據(jù)這里寫死,一般是從數(shù)據(jù)庫查詢得到的)

                  $username=isset($_POST['username'])?$_POST['username']:"";
                  $password=isset($_POST['password'])?$_POST['password']:"";
                  if($username=='admin' && $password==123){
                      $flag=1;
                      $msg='登錄成功';
                  } else {
                      $flag=2;
                      $msg='密碼錯誤';
                  }
                  
                  $response=[
                      'flag'=>$flag,
                      'msg'=>$msg,
                  ];
                  echo json_encode($response);
                  在原來的登錄界面的js腳本里加入點擊時的驗證
                  document.getElementById('check').onclick=function () {
                          var xhr=new XMLHttpRequest();
                          xhr.open('post','check_login.php');
                          xhr.setRequestHeader('content-type',"application/x-www-form-urlencoded");
                          xhr.onreadystatechange=function () {
                              if(xhr.readyState==4 && xhr.status==200){
                                  var data=JSON.parse(xhr.responseText);
                                  if(data.flag==1) {
                                    alert(data.msg);
                                    console.log(data);
                                  }else if(data.flag==2){
                                      alert(data.msg);
                                      console.log(data);
                                  }
                              }
                          };
                          xhr.send('username='+document.getElementById('name').value+'&password='+pwd.value);
                      }
                  【網(wǎng)站聲明】本站部分內(nèi)容來源于互聯(lián)網(wǎng),旨在幫助大家更快的解決問題,如果有圖片或者內(nèi)容侵犯了您的權(quán)益,請聯(lián)系我們刪除處理,感謝您的支持!

                  相關(guān)文檔推薦

                  Uncaught PDOException reveals username and password(未捕獲的 PDOException 顯示用戶名和密碼)
                  Check if username exists PDO(檢查用戶名是否存在 PDO)
                  Laravel 5.2 - How to logout a user from all of his devices(Laravel 5.2 - 如何從用戶的所有設(shè)備上注銷)
                  Elegant way to search an PHP array using a user-defined function(使用用戶定義函數(shù)搜索 PHP 數(shù)組的優(yōu)雅方式)
                  How to implement service layer in Zend Framework?(Zend Framework中如何實現(xiàn)服務(wù)層?)
                  How do I implement Direct Identity based OpenID authentication with Zend OpenID(如何使用 Zend OpenID 實現(xiàn)基于直接身份的 OpenID 身份驗證)
                      <i id='CX0uq'><tr id='CX0uq'><dt id='CX0uq'><q id='CX0uq'><span id='CX0uq'><b id='CX0uq'><form id='CX0uq'><ins id='CX0uq'></ins><ul id='CX0uq'></ul><sub id='CX0uq'></sub></form><legend id='CX0uq'></legend><bdo id='CX0uq'><pre id='CX0uq'><center id='CX0uq'></center></pre></bdo></b><th id='CX0uq'></th></span></q></dt></tr></i><div class="qwawimqqmiuu" id='CX0uq'><tfoot id='CX0uq'></tfoot><dl id='CX0uq'><fieldset id='CX0uq'></fieldset></dl></div>
                        <tbody id='CX0uq'></tbody>

                          <small id='CX0uq'></small><noframes id='CX0uq'>

                          <tfoot id='CX0uq'></tfoot>
                            <bdo id='CX0uq'></bdo><ul id='CX0uq'></ul>

                          • <legend id='CX0uq'><style id='CX0uq'><dir id='CX0uq'><q id='CX0uq'></q></dir></style></legend>
                            主站蜘蛛池模板: 国产精品久久久久久久久久久久 | 99精品一区二区三区 | 国产一区二区三区色淫影院 | 操久久久 | 欧美最猛黑人xxxx黑人 | 中文字幕一级 | 久久久精品一区 | 精品免费| 亚洲日本欧美日韩高观看 | 中文字幕第二十页 | 国产精品综合色区在线观看 | 91社区在线观看播放 | 欧美一级精品片在线看 | 欧美日韩亚 | 国产日韩欧美在线 | 一区二区三区播放 | www精品美女久久久tv | 亚洲国产精品久久久 | 日韩精品久久一区 | 日韩精品一区二区三区中文在线 | 欧美日韩亚洲在线 | 91麻豆精品国产91久久久久久久久 | .国产精品成人自产拍在线观看6 | 韩日一区 | 亚洲国产精品一区二区三区 | av毛片免费 | 精品二区 | 伊人网在线播放 | 成人免费网站 | 欧美日韩一区二区三区视频 | 三级av在线 | 亚洲成人一区二区 | 一区二区三区精品视频 | 日韩在线观看一区 | 中文字幕一区二区三区四区 | 精品视频 免费 | 激情自拍偷拍 | 国产高清精品在线 | 天天看逼 | 日本一区二区在线视频 | 在线日韩av电影 |