php使用Header函数,PHP_AUTH_PW和PHP_AUTH_USER做用户验证
发布:smiling 来源: PHP粉丝网 添加日期:2019-08-12 11:34:35 浏览: 评论:0
本文实例讲述了php使用Header函数,PHP_AUTH_PW和PHP_AUTH_USER做用户验证的方法。分享给大家供大家参考,具体如下:
在php中,可以使用Header函数做一些有趣的事情,用户验证就是其中一个很有意思的功能。具体用法:
Header("WWW-Authenticate: Basic realm="USER LOGIN"");
Header("HTTP/1.0 401 Unauthorized");
在页首设计这两个Header函数,页面在载入前会出现一个登录框,要求输入用户名和密码。习惯了在页面登录的我们,是否觉得这样的登录很原始,又很新奇呢?
为了获取从这个对话框中传来的用户名和密码,需要用到php提供的两个特殊变量$PHP_AUTH_USER和$PHP_AUTH_PW,要这样使用这两个特殊变量好像需要在php.ini中设置相关的选项,不然就只能像下面这样引用:
$_SERVER['PHP_AUTH_USER']
$_SERVER['PHP_AUTH_PW']
获取到用户提交上来的用户名和密码之后,要怎样处理逻辑就跟我们一般的程序处理没有什么区别了。下面提供两个例程供参考:
- <?php
- if(!isset($PHP_AUTH_USER)) {
- Header("WWW-authenticate: basic realm="XXX"");
- Header("HTTP/1.0 401 Unauthorized");
- $title="Login Instructions";
- ?>
- <blockquote>
- In order to enter this section of the web site, you must be an XXX
- subscriber. If you are a subscriber and you are having trouble logging
- in,
- please contact <a href="mailto:support@xxx.com">support@xxx.com</a>.
- </blockquote>
- <?php
- exit;
- } else {
- mysql_pconnect("localhost","nobody","") or die("Unable to connect to SQL server");
- mysql_select_db("xxx") or die("Unable to select database");
- $user_id=strtolower($PHP_AUTH_USER);
- $password=$PHP_AUTH_PW;
- $query = mysql_query("select * from users where user_id='$user_id' and password='$password'");
- if(!mysql_num_rows($query)) {
- Header("WWW-authenticate: basic realm="XXX"");
- Header("HTTP/1.0 401 Unauthorized");
- $title="Login Instructions";
- ?>
- <blockquote>
- In order to enter this section of the web site, you must be an XXX
- subscriber. If you are a subscriber and you are having trouble
- logging in,
- please contact <a href="mailto:support@xxx.com">support@xxx.com</a>.
- </blockquote>
- <?php
- exit;
- //phpfensi.com
- }
- $name=mysql_result($query,0,"name");
- $email=mysql_result($query,0,"email");
- mysql_free_result($query);
- }
- ?>
另外一个参考的例程:
- <?php
- //assume user is not authenticated
- $auth = false;
- $user = $_SERVER['PHP_AUTH_USER'];
- $pass = $_SERVER['PHP_AUTH_PW'];
- if ( isset($user) && isset($pass) )
- {
- //connect to db
- include 'db_connect.php';
- //SQL query to find if this entered username/password is in the db
- $sql = "SELECT * FROM healthed_workshop_admin WHERE
- user = '$PHP_AUTH_USER' AND
- pass = '$PHP_AUTH_PW'";
- //put the SQL command and SQL instructions into variable
- $result = mysql_query($sql) or die('Unable to connect.');
- //get number or rows in command; if more than 0, row is found
- $num_matches = mysql_num_rows($result);
- if ($num_matches !=0)
- {
- //matching row found authenticates user
- $auth = true;
- }
- }
- if (!$auth)
- {
- header('WWW-Authenticate: Basic realm="Health Ed Presentation Admin"');
- header('HTTP/1.0 401 Unauthorized');
- echo 'You must enter a valid username & password.';
- exit;
- }
- else
- {
- echo 'Success!';
- }
- ?>
Tags: Header函数 PHP_AUTH_PW
相关文章
- ·php Header函数实现下载短点续传程序(2014-08-28)
推荐文章
热门文章
最新评论文章
- 写给考虑创业的年轻程序员(10)
- PHP新手上路(一)(7)
- 惹恼程序员的十件事(5)
- PHP邮件发送例子,已测试成功(5)
- 致初学者:PHP比ASP优秀的七个理由(4)
- PHP会被淘汰吗?(4)
- PHP新手上路(四)(4)
- 如何去学习PHP?(2)
- 简单入门级php分页代码(2)
- php中邮箱email 电话等格式的验证(2)