PHP_AUTH_USER没有设置?

2022-08-30 10:22:07

由于某种原因,其中没有代码

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

}

正在为我执行。当我输入正确的用户名和密码时,再次弹出授权提示框。如果两个字段都正确并且我按 Enter 键,难道不会被“设置”吗?但出于某种原因,情况并非如此。我可能做错了什么?谢谢。


答案 1

在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)));

答案 2

试试这个

<IfModule mod_rewrite.c>
RewriteEngine on
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization},L]
</IfModule>

在您的 .htaccess 文件中,您必须将其放入根目录中

然后

list($_SERVER['PHP_AUTH_USER'], $_SERVER['PHP_AUTH_PW']) = explode(':' , base64_decode(substr($_SERVER['HTTP_AUTHORIZATION'], 6)));

在 php 脚本的开头


推荐