首页  >  文章  >  后端开发  >  PHP中http的数据库是如何进行验证登录

PHP中http的数据库是如何进行验证登录

不言
不言原创
2018-07-19 16:08:473511浏览

在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