if( !isset($_SERVER['PHP_AUTH_USER']) ) { header("WWW-Authenticate: Basic realm='登录对话框上显示的服务器名称'"); header("HTTP/1.0 401 Unauthorized"); echo "Text to send if user hits Cancel buttonn"; exit; } else { if ( !($_SERVER['PHP_AUTH_PW'] == $publish_password) ) {// 如果是错误的用户名称/密码对,强制再验证 header("WWW-Authenticate: Basic realm='登录对话框上显示的服务器名称'"); header("HTTP/1.0 401 Unauthorized"); echo "ERROR : $PHP_AUTH_USER]/$PHP_AUTH_PW is invalid."; exit; } else {///验证成功后做其它处理 echo "OK "; ///或者重定向 } }
似乎各浏览器对输入的用户名和密码保存的机制不一样,有些在浏览器重启后还是存在,有些则重启浏览器之后不在。
我使用的IE8在默认情况下是输入正确的用户名和密码之后,不重启的情况下,在短期内(长期没实验)访问此页面变量依然有效。