Home  >  Article  >  php教程  >  The PHP web page generates a QR code, and the Android client scans the code to log in.

The PHP web page generates a QR code, and the Android client scans the code to log in.

大家讲道理
大家讲道理Original
2016-11-08 11:41:551396browse

使用了Github上具有扫码功能的ZXing开源库,使用了通过随机数生成二维码图片网络API,整个过程经过三步:
1.PHP网页生成二维码,相应随机数存储到数据库中;
2.Android客户端扫码,携带username保存至随机数对应的位置;

3.每隔一段时间,PHP通过Ajax轮询数据库,判断是否为空,不为空则跳转网页。

<html>
  <head>
    <title>qrlogin</title>
    <meta charset="UTF-8"/>
  </head>
  <body>
    <?php
    /**
     * @author Cenquanyu
     * @version 2016年5月12日
     *
     */
       require &#39;mysql_connect.php&#39;;
       $randnumber = "";
       for($i=0;$i<8;$i++){
       $randnumber.=rand(0,9);
       }
       //将生成的随机数保存至数据库
       mysql_query("insert into login_data (randnumber) values (&#39;$randnumber&#39;)")
        
    ?>
     
   <img  src="http://qr.liantu.com/api.php?text=<?php echo $randnumber;? alt="The PHP web page generates a QR code, and the Android client scans the code to log in." >" width="300px"/>
   <input hidden="hidden" type="text" name="randnumber" id="randnumber"value="<?php echo $randnumber;?>"/>
  
  </body>
  <script>
    xmlHttpRequest.onreadystatechange = function(){
       if(xmlHttpRequest.status == 200 && xmlHttpRequest.readyState ==4){
    result = xmlHttp.responseText;
    if(result==true){//username不为空则跳转页面
         window.location.href=&#39;welcome.php&#39;;
    }
}
}
  }
  function polling(){
 
      //执行轮询操作
      var xmlHttpRequest;
      if(window.XMLHttpRequest){
          xmlHttpRequest = new XMLHttpRequest();
          }
      else{
          xmlHttpRequest = new ActiveXObject("Microsoft.XMLHTTP");
      }
       randnumber = document.getElementById(&#39;randnumber&#39;).value;
       xmlHttpRequest.open("GET","polling.php?randnumber="+ randnumber,true);
       xmlHttpRequest.send();
  }
       setInterval("polling()",1000);
</script>
 
</html>


Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn