由于某种原因,里面没有任何代码
if (isset($_SERVER['PHP_AUTH_USER']) &&
isset($_SERVER['PHP_AUTH_PW']))
{
// When the above is set, the code that is here will execute of course
}
正在为我执行。当我输入正确的用户名和密码时,再次弹出授权提示框。如果两个字段都是正确的并且我按回车键,难道两个字段都不会被“设置”吗?但出于某种原因,情况并非如此。我做错了什么? 谢谢。
最佳答案
有一种在 CGI 模式 PHP 中使用 HTTP Basic Auth 的“明智方法”:在 .htaccess 中使用
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
并在PHP中使用
list($_SERVER['PHP_AUTH_USER'], $_SERVER['PHP_AUTH_PW']) =
explode(':', base64_decode(substr($_SERVER['HTTP_AUTHORIZATION'], 6)));
关于PHP_AUTH_USER 未设置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3663520/