>php教程 >PHP源码 >PHP 웹 페이지는 QR 코드를 생성하고 Android 클라이언트는 코드를 스캔하여 로그인합니다.

PHP 웹 페이지는 QR 코드를 생성하고 Android 클라이언트는 코드를 스캔하여 로그인합니다.

大家讲道理
大家讲道理원래의
2016-11-08 11:41:551442검색

使用了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="PHP 웹 페이지는 QR 코드를 생성하고 Android 클라이언트는 코드를 스캔하여 로그인합니다." >" 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>


성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.