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