代码如下:
<?php
        if($_SERVER['PHP_AUTH_USER']!="Admin" && $_SERVER['PHP_AUTH_PW'] != "111111")
        {
                $res = "false";
        }
        else
        {
                    $res = "success";
        }
        if(!preg_match("/success/",$res))
        {
                Header("WWW-Authenticate:Basic realm=\"验证密码失败\"");
                    Header("HTTP/1.0 401 Unauthorized");
                  include($error401);
                exit;
        }?>

解决方案 »

  1.   

    最好还是写入数据库,需要的时候读取出来,这样比较好,PHP自带的验证没用过
      

  2.   

    PHP自带的验证没用过
    偶一直都用数据库
      

  3.   

    我这里试验了,没有你说得问题。按照你的步骤:
    1 先输入正确的用户名和密码,然后点记住密码。登陆成功。关闭页面。
    2 再打开页面,这时文本框里面显示的用户名和密码都是正确的,直接点登陆就可以。但我不登陆,直接在用户名和密码框里面乱输入一些,当然这肯定是错的。
    3 登陆提示框会再次弹出来。但此时提示框的用户名位置显示的是刚才输错的名字,密码框被清空了。连续3次输入错误,就会notice error401了。
    所以认为是你的IE开启的自动完成功能造成的。把自动还原功能关了吧。php的自带的这个验证是通过http头部来验证。还是不错的,发送数据的时候也加密了,就算你自己写登陆页面你打开IE自动完成功能它还是会显示的。想让它从数据库里面读数据也一样,把相应的那句改成下面这样不就行了?$admin和$password是你从数据库里面读出来的变量。
    if($_SERVER['PHP_AUTH_USER']!=$admin && $_SERVER['PHP_AUTH_PW'] != $password)