Home  >  Article  >  Backend Development  >  How to write a client in PHP to scan the QR code to log in to the PC backend function

How to write a client in PHP to scan the QR code to log in to the PC backend function

小云云
小云云Original
2018-03-16 15:00:352401browse

This article mainly shares with you how to write a PHP client to scan the QR code to log in to the PC backend function. This is the first time for me to write this function. I was inspired by the blogger’s blog below to demo and complete this function. I want to summarize it again. Code in case you forget.

html page

<!DOCTYPE html>
<html>

<head>
    <meta charset="UTF-8">
    <title></title>
    <link rel="stylesheet" type="text/css" href="static/h-ui/css/H-ui.min.css" />
    <link rel="stylesheet" href="login/css/normalize.css">
    <link rel="stylesheet" href="login/css/style.css">
</head>

<body>
    <p class="top">
        <img src="login/img/1.png" alt="">

    </p>
    <p class="middle">

        <p class="login_p">
            <img src="login/img/3.png" alt="" class="change_login">
            <img src="login/img/9.png" alt="" class="change_txt">
            <p class="change_p">
                <p class="con_top">
                    <img src="login/img/8.png" alt="">
                    <span>管理员登录</span>
                </p>
                <p class="con_bottom">
                    <p id="account">

                        <br>
                        <img src="login/img/6.png" alt="" class="userimg">
                        <input type="text" id="username" placeholder="请输入用户名">
                        <br>
                        <br>
                        <br>
                        <img src="login/img/7.png" alt="" class="passimg">
                        <input type="password" id="password" placeholder="请输入密码">
                        <br>
                        <br>
                        <br>
                        <br>
                        <p id="btnSubmit" class="btnSubmit">登录</p>
                        <br>
                    </p>
                    <p id="code" style="display: none;">
                        <p class="code_p">
                            <img src="" alt="" id="qrcodeimg" width="144px" height="145px">
                        </p>
                        <p class="code_txt">
                            <img src="login/img/18.png" alt="">
                            <p>
                                <p>  打开APP</p>
                                <p>  扫一扫登录</p>
                            </p>
                        </p>
                    </p>
                    <p class="hint">
                        <span>二维码有效期2分钟</span>
                    </p>
                </p>
            </p>
        </p>
    </p>

</body>

<script src=&#39;login/js/jquery-1.9.0.min.js&#39;></script>
<script type="text/javascript" src="lib/layer/2.4/layer.js"></script>
<script src=&#39;login/js/index.js&#39;></script>
<script src=&#39;static/h-ui.admin/js/login.js&#39;></script>


</html>

js page

$.ajax({            type: "GET",
            url: "er/qrcodelogin/getqruuid.php",            data: {},
            success: function (result) {
                console.log(result);                var data = JSON.parse(result);                // console.log(data.code);
                if (data.code == 1) {
                    $("#qrcodeimg").attr(&#39;src&#39;, &#39;http://qr.liantu.com/api.php?text=&#39; + result);


                    console.log(data.data);                    var min=0;

                    interval1= setInterval(function () {                        min=min+1000;

                        $.ajax({                            type: "GET",
                            url: "er/qrcodelogin/checkqruuid.php",                            data: {&#39;qruuid&#39;: data.data},
                            success: function (result) {                                    min=min+1000;                                    if(min==36000){
                                        console.log(min);
                                        alert("二维码已过期!");
                                        clearInterval(interval1);
                                        location.replace(location.href);                                        min=1000;
                                        interval1();
                                    }else{
                                        console.log(min);                                        var data = JSON.parse(result);                                        if (data.code == 1) {                                            // alert(&#39;扫码成功(即登录成功),进行跳转.....&#39;);
                                            //停止轮询
                                            clearInterval(interval1);
                                            location.href="index.html";                                            //TODO 拿到需要的信息 然后跳转什么的
                                        }else if(data.code == 300){
                                            alert(&#39;无此后台用户!&#39;);                                            //停止轮询
                                            clearInterval(interval1);
                                            location.href="login.html";
                                        }
                                    }

                            }
                        });

                    }, 1000);//1秒钟  频率按需求
                }
            }
        });

getqruuid.php page

<?php/**
 * 用于前端获取qruuid(二维码唯一ID)使用
 *
 * Created by PhpStorm.
 * User: caohan
 * Date: 2017/10/15
 * Time: 下午2:59
 */require(&#39;config.php&#39;);//生成随机的UUID 用于二维码显示的内容 和 绑定用$qruuid = substr(md5(uniqid(mt_rand(), true)), 0, 15);//生成uuid//将生成的随机数保存至数据库$sql="INSERT into t_pc_code(randnumber) values (&#39;$qruuid&#39;)";$query = sqlsrv_query($conn, $sql);if (!$query) {       die(print_r(sqlsrv_errors(), true));
}$arr = [&#39;code&#39;=>1, &#39;msg&#39; => &#39;生成qruuid成功&#39;,&#39;data&#39;=>$qruuid];echo json_encode($arr);exit();

checkqruuid.php page

<?phpsession_start();
/**
 * Created by PhpStorm.
 * User: caohan
 * Date: 2017/10/15
 * Time: 下午3:17
 */require(&#39;config.php&#39;);
 // $mysqli = new mysqli($db_host, 
 $db_user, $db_pwd, $db_name);
 // if (mysqli_connect_error())
 //     echo mysqli_connect_error();
 // $mysqli->set_charset("utf8");$qruuid = 
 $_GET[&#39;qruuid&#39;];$sql = "SELECT * from t_pc_code where randnumber=&#39;" . 
 $qruuid . "&#39;";$result = sqlsrv_fetch_array(sqlsrv_query($conn, $sql));if (!$result) 
 {       die(print_r(sqlsrv_errors(), true));
}if (!is_null($result[&#39;username&#39;])){    $nowusername=$result[&#39;username&#39;];    
$sql2="SELECT * from t_webuser where username = &#39;$nowusername&#39; and isDeleted=0";    
$result2 = sqlsrv_query($conn, $sql2);    if($row=sqlsrv_fetch_array($result2)){       
 $_SESSION[&#39;sydsdj_name&#39;]=$row[&#39;username&#39;];       
  $_SESSION[&#39;sydsdj_roleType&#39;]=$row[&#39;roleType&#39;];       
  $_SESSION[&#39;sydsdj_orgId&#39;]=$row[&#39;orgId&#39;];       
   $_SESSION[&#39;sydsdj_orgName&#39;]=$row[&#39;orgName&#39;];      
    $_SESSION[&#39;sydsdj_manage_id&#39;]=$row[&#39;id&#39;];       
     $arr = [&#39;code&#39; => 1, &#39;msg&#39; => &#39;登录成功&#39;, &#39;data&#39; => $result];
    }else{        $arr = [&#39;code&#39; => 300, &#39;msg&#39; => &#39;账号未注册!&#39;, &#39;data&#39; => $result];
    }

}else{    $arr = [&#39;code&#39; => 500, &#39;msg&#39; => &#39;qruuid暂时未被绑定&#39;,&#39;data&#39;=>$qruuid];
}echo json_encode($arr);exit();?>

write An interface for storing user accounts on the client

<?php// 指定允许其他域名访问  
header(&#39;Access-Control-Allow-Origin:*&#39;);require(&#39;config.php&#39;);
$username = $_REQUEST[&#39;username&#39;];$randnumber = $_REQUEST[&#39;randnumber&#39;];
$result = sqlsrv_query($conn,"UPDATE t_pc_code set username=&#39;
$username&#39; where randnumber= &#39;$randnumber&#39;");if (!$result) 
{    die(print_r(sqlsrv_errors(), true));   
 $arr = [&#39;code&#39; => 0, &#39;msg&#39; => &#39;sy&#39;];

}else{    $arr = [&#39;code&#39; => 1, &#39;msg&#39; => &#39;sy&#39;];
}echo json_encode($arr);?>

Related recommendations:

The implementation code of opening the app by scanning the QR code

WeChat Scan the QR code to log in to the website code_PHP tutorial

php enables scanning the QR code to access different download addresses according to the browser type, php browser type_PHP tutorial

The above is the detailed content of How to write a client in PHP to scan the QR code to log in to the PC backend function. For more information, please follow other related articles on the PHP Chinese website!

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