php创建基本身份认证站点的方法详解

  默认情况下,大多数web服务器一般被配置为匿名访问,也即为,用户在访问服务器上的信息时一般不会被要求提示标识信息。匿名访问意味着用户不使用用户名和密码登陆就可以访问网站。这也是绝大多数公共网站所使用的配置。

  在Apache的配置文件“httpd.conf”中,默认被配置为匿名访问(如下):

  

复制代码 代码如下:

  <directory "C:/program files/Apache software foundation/apache2.2/htdocs">

  Options Indexes FollowSymLinks Includes

  AllowOverride None

  Order allow,deny

  Allow from all

  </Directory>

  --------------------------------------------------------------------------------

  要强制浏览器使用基本身份认证,必须传递一个WWW-Authenticate字段,例如下边的代码使用header()函数来要求客户端使用BASIC验证,它在HTTP消息报头中增加一个WWW-Authenticate字段:

  header("WWW-Authenticate:BASIC Realm=My Realm");

  --------------------------------------------------------------------------------

  下边写一个使用

  

复制代码 代码如下:

  <?php

  if(!isset($_SERVER['PHP_AUTH_USER'])){

  header("WWW-Authenticate:BASIC Realm=My Realm");

  header("HTTP/1.0 401 Unauthorized");

  echo("账号/密码错误!");

  exit;

  }else{

  /*获取用户名,密码进行验证*/

  $user=$_SERVER['PHP_AUTH_USER'];

  $pwd=$_SERVER['PHP_AUTH_PW'];

  if($user=="admin"&&$pwd="password"){

  echo "通过验证";

  }else{

  header("HTTP/1.0 401 Unauthorized");

  echo "账号/密码错误!";

  exit;

  }

  }

  ?>