首頁 >後端開發 >php教程 >PHP中http的資料庫是如何進行驗證登入

PHP中http的資料庫是如何進行驗證登入

不言
不言原創
2018-07-19 16:08:473526瀏覽

在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[&#39;PHP_AUTH_USER&#39;]
//$_SERVER[&#39;PHP_AUTH_PW&#39;];
//echo $_SERVER[&#39;PHP_AUTH_USER&#39;]."\r\n";
//echo $_SERVER[&#39;PHP_AUTH_PW&#39;];
function authenticate_user ()
{
    header("WWW-Authenticate: Basic realm =&#39;Project&#39;");
    header("HTTP/1.1 401 unauthorized");
}
$user = $_SERVER[&#39;PHP_AUTH_USER&#39;];
$passwd =  $_SERVER[&#39;PHP_AUTH_PW&#39;];
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 &#39;&#39; ,
passwd VARCHAR(50)  not NULL DEFAULT &#39;&#39;,
harsh VARCHAR(50)  DEFAULT &#39;&#39;,
PRIMARY KEY(id,name),
INDEX `asd` (name)
 ) ENGINE = INNODB , DEFAULT CHARSET = UTF8 COMMENT="HTTP登录验证"

相關推薦:

#php 用戶cookie登入驗證與mysql資料登入驗證的方法

php使用curl模擬登入帶驗證碼的網站,curl驗證碼

以上是PHP中http的資料庫是如何進行驗證登入的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn