background image

php 实例-浏览器中显示密码提示框

本文介绍下,

php 使用 WWW-Authenticate 验证方式,在浏览器中显示密码提示框的例子,

有需要的朋友参考下吧。
1,php 代码
<?php
/**
* 浏览器 显示密码提示框
*/
   if (($_SERVER['PHP_AUTH_USER'] != 'specialuser') ||
   ($_SERVER['PHP_AUTH_PW'] != 'secretpassword')) {
      header('WWW-Authenticate: Basic Realm="Secret
      Stash"');
      header('HTTP/1.0 401 Unauthorized');
      print('You must provide the proper credentials!');
      exit;
   }
?>
2,打开浏览器密码对话框和认证用户基于数据库
<?php
   function authenticate_user() {
      header('WWW-Authenticate: Basic realm="Secret Stash"');
      header("HTTP/1.0 401 Unauthorized");
      exit;
   }

   if(! isset($_SERVER['PHP_AUTH_USER'])) {
      authenticate_user();
   } else {
      mysql_connect("localhost","authenticator","secret") or
      die("连接数据库服务器失败!");
      mysql_select_db("gilmorebook") or die("未能连接验证数据库。");

      $query = "SELECT username, pswd FROM user WHERE
      username='$_SERVER[PHP_AUTH_USER]'
                      AND pswd=MD5('$_SERVER[PHP_AUTH_PW]')
        AND
        ipAddress='$_SERVER[REMOTE_ADDR]'";

      $result = mysql_query($query);
      if (mysql_num_rows($result) == 0)
         authenticate_user();
         mysql_close();
      }