在httpd.conf中加入“LoadModule php4_module c:/php4/sapi/php4apache.dll
AddType application/x-httpd-php .php”两项。
使用apache验证。完整程序:
<?php
function auth()
{
  Header("WWW-Authenticate: Basic realm=\"管理员,请输入:\"");
  Header("HTTP/1.0 401 Unauthorized");
  echo"<h2>您需要进行身份验证!</h2>";
  echo"<br>请刷新重试";
  exit;
}
//检查变量$php_auth_user
if (!isset($PHP_AUTH_USER))
    {
      auth();
    }
  else
   {
     $conn=mysql_connect("localhost","nobody","");
     mysql_select_db("adminbase",$conn);
     $c_query="select * from adminbase where name='$PHP_AUTH_USER' and 
     password=PASSWORD('$PHP_AUTH_PW')";
     $c_result=mysql_query($c_query);
     $c_numRows=mysql_num_rows($c_result);
//判断结果
     if ($c_numRows==0)
         {
           auth();
          }
     }
?>

解决方案 »

  1.   

    大哥,我的意思是不通过mysql这样的数据库,直接注销掉PHP_AUTH_USER怎么做?
      

  2.   

    如果是通过浏览器返回的值的话,$PHP_AUTH_USER好像在浏览器端也会有所临时保留的,以方便下次的访问,只不过关闭浏览器之后,就不会在存在了。
      

  3.   

    这两个变量无法设置……
    因为这是cgi标准中web服务器保存的环境变量,
    是使用了一种认证方式后才能得到的。