在PHP中http的資料庫是如何進行驗證登入的?接下來我們就來看看PHP中http的資料庫驗證登入的實作範例。
1. 關於檔案驗證方式
解析建立的.htpasswd檔案存放的登入帳號和密碼
提取前台寄來的http的驗證登入帳號與密碼
$_SERVER['PHP_AUTH_USER']和$_SERVER['PHP_AUTH_PW']
分別比對 代碼 和關於資料庫方式大概一致
代碼位址
https://github.com/956077081/PHP_demo/blob/master/HttpLogin.php
2. 關於基於資料庫的方式進行檔案比對
<?php //验证Http的两个参数 //$_SERVER['PHP_AUTH_USER'] //$_SERVER['PHP_AUTH_PW']; //echo $_SERVER['PHP_AUTH_USER']."\r\n"; //echo $_SERVER['PHP_AUTH_PW']; function authenticate_user () { header("WWW-Authenticate: Basic realm ='Project'"); header("HTTP/1.1 401 unauthorized"); } $user = $_SERVER['PHP_AUTH_USER']; $passwd = $_SERVER['PHP_AUTH_PW']; if( !isset($user) ||!isset($passwd)){ authenticate_user(); }else{ $db = new mysqli("localhost", "root", "123456", "httpauth"); $stm = $db->prepare("select name ,passwd from auth where name=? and passwd=?"); $stm->bind_param("ss",$user,$passwd); $stm->execute(); $stm->store_result(); if ( $stm->num_rows == 0 ){ authenticate_user(); }else{ echo "you are sucessful to login !"; } }
對應的資料庫(httpauth) 明文的驗證方式也可以自行做資料庫與php原始資料加密比對
use httpauth; create table autht( id int(10) UNSIGNED not NULL AUTO_INCREMENT, name VARCHAR(50) NOT NULL DEFAULT '' , passwd VARCHAR(50) not NULL DEFAULT '', harsh VARCHAR(50) DEFAULT '', PRIMARY KEY(id,name), INDEX `asd` (name) ) ENGINE = INNODB , DEFAULT CHARSET = UTF8 COMMENT="HTTP登录验证"
相關推薦:
#php 用戶cookie登入驗證與mysql資料登入驗證的方法
以上是PHP中http的資料庫是如何進行驗證登入的詳細內容。更多資訊請關注PHP中文網其他相關文章!