gpt4 book ai didi

php - 为什么 $_SERVER ["PHP_AUTH_USER"] 和 $_SERVER ["PHP_AUTH_PW"] 没有设置?

转载 作者:可可西里 更新时间:2023-11-01 12:47:46 30 4
gpt4 key购买 nike

在开始之前,我想指出我浏览了 Stack Overflow 并发现了其他类似的问题 - PHP_AUTH_USER not set?HTTP Auth via PHP - PHP_AUTH_USER not set? - 这些已经指出,如果“服务器 API”设置为“CGI/FCGI”,则不会设置身份验证 $_SERVER 变量,但我检查了我的“phpinfo()”输出和我的““服务器 API”设置为“Apache 2.0 处理程序”。

好的,我有一个简单的脚本如下:

<?php
echo "Username: " . $_SERVER["PHP_AUTH_USER"] . ", Password: " . $_SERVER["PHP_AUTH_PW"];
?>

...我通过以下方式远程调用:

wget -v --http-user=johnsmith --http-password=mypassword http://www.example.com/myscript.php

...但只输出:

Username: , Password:

我还尝试使用 PHP cURL 调用脚本并适本地设置身份验证参数,如下所示:

 curl_setopt($ch, CURLOPT_USERPWD, "johnsmith:mypassword");

...但我得到与上面相同的输出。

知道我做错了什么吗?也许我还需要启用/配置其他东西?

最佳答案

对于 PHP-CGI:

在 .htaccess 中添加:

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

然后在脚本的开头添加:

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

关于php - 为什么 $_SERVER ["PHP_AUTH_USER"] 和 $_SERVER ["PHP_AUTH_PW"] 没有设置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14724127/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com