文档章节

Using $PHP_AUTH_USER and $PHP_AUTH_PW to authentic

Amamatthew
 Amamatthew
发布于 2014/10/05 22:18
字数 365
阅读 10
收藏 0

You could use mod_auth_mysql.  You can also use PHP directly.  
The way I normally do it is to create an auth.inc file that I then
include at the top of each file that requires authentication.  Because of
the way http authentication works, the user is only prompted for their
username/password combination the first time they hit one of the pages
that requires authentication and you will be able to access both their
username and password on each of these pages with $PHP_AUTH_USER and the
password is available as $PHP_AUTH_PW.

The advantage to using PHP over mod_auth_mysql is in the fact that if you
are storing other things about each user in the user record you authenticate
against then you can pull this info out in the same query as the
authentication query.  

Here is a complete example of an auth.inc script that I am using on one
of my sites. I have xxx'ed out some of the stuff I don't feel like showing
everyone.  You should be able to modify this for your own use:

<?

    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>

        <?

        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>

            <?

            exit;

        }

        /* Here I pick out some other useful info from my database that

           then available to any script that includes this file */

        $name=mysql_result($query,0,"name");

        $email=mysql_result($query,0,"email");

        mysql_free_result($query);

    }
?>


本文转载自:http://www.weberdev.com/get_example.php3?ExampleID=82

Amamatthew
粉丝 67
博文 1050
码字总数 76443
作品 0
厦门
后端工程师
私信 提问
Header函数和PHP_AUTH_USER做用户验证

php Header PHPAUTHUSER PHPAUTHPW 用户验证 在php中,可以使用Header函数做一些有趣的事情,用户验证就是其中一个很有意思的功能。具体用法: Header("WWW-Authenticate: Basic realm="USE...

JK_OPERA
2014/12/09
0
0
PHP提供了接口,Java客户端怎么写

PHP接口就是后面就是这样的....../www/index.php/Webservice/index; 而且服务端还有验证 private function server_check(){ if (!isset($_SERVER['PHP_AUTH_USER']) || !isset($_SERVER['PHP......

无间道
2015/02/06
312
1
用 PHP 进行 HTTP 认证

PHP 的 HTTP 认证机制仅在 PHP 以 Apache 模块方式运行时才有效,因此该功能不适用于 CGI 版本。在 Apache 模块的 PHP 脚本中,可以用 header() 函数来向客户端浏览器发送“Authentication ...

mickelfeng
2013/03/25
0
0
curl 或 file_get_contents 获取需要授权页面的方法

今天因工作需要,需要用 curl / filegetcontents 获取需要授权(Authorization)的页面内容,解决后写了这篇文章分享给大家。 php curl 扩展,能够在服务器端发起POST/GET请求,访问页面,并能...

蜗牛奔跑
2016/03/07
9
0
PHP中$_SERVER的详细参数与说明

$SERVER['PHPSELF'] #当前正在执行脚本的文件名,与 document root相关。 $SERVER['argv'] #传递给该脚本的参数。 $SERVER['argc'] #包含传递给程序的命令行参数的个数(如果运行在命令行模式......

随智阔
2012/12/15
0
0

没有更多内容

加载失败,请刷新页面

加载更多

怎么选择数据服务器?请记住这五条

我们应当都知道“数据无价”这个词,既然数据那么主要,选择一款安全稳定的数据服务器是很有必要的,那么如何选择一款牢靠的,稳定的数据服务器呢?我们从五个方面下手,协助您体系的了解数据...

linux-tao
3分钟前
0
0
第一讲:编写TCP Socket小程序

根据下面的步骤编写TCP Socket小程序。注意:作者必须是自己的名字。结果如下: 步骤: 1、用VC建立服务器程序 创建一个win32控制台程序 上面的代码如下,编写代码的时候切换到FileView界面,...

一匹狼工作室
5分钟前
0
0
python-protobuf2uml

首先这篇文章是参考的https://github.com/vak/protobuf2uml 本篇文章都是基于python3的 下面首先我们说一下python3的安装 wget https://github.com/protocolbuffers/protobuf/releases/down...

yiduwangkai
6分钟前
0
0
mysql通过source恢复大表小计

最近迁移一个数据库,500多张表大概600多万条数据,通过navicat导出的数据,再通过source命令导入到mysql8.0 之前也做过类似的工作,但是却从来没有这么慢过,一个小时了还没有完成,之前在笔...

休辞醉倒
6分钟前
0
0
Java、Python、C++、PHP、JavaScript这5大编程语言,我究竟该选哪个?

很多朋友在后台给我留言,问:现在这么多编程语言,Python、Java、PHP、C++、JavaScript等,究竟哪种最流行?我想这应该也是你的困扰吧! 其实他们各有优势,但是对于选择困难的程序员而言,...

Java领航员
23分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部