PHP_AUTH_USER为空。 和系统使用Windows登录凭据。
如何更改它。
我想使用用户输入的用户名和密码
答案 0 :(得分:9)
请参阅HTTP Authentication with PHP
<?php
if (!isset($_SERVER['PHP_AUTH_USER'])) {
Header("WWW-Authenticate: Basic realm=\"My Realm\"");
Header("HTTP/1.0 401 Unauthorized");
echo "Text to send if user hits Cancel button\n";
exit;
} else {
echo "Hello {$_SERVER['PHP_AUTH_USER']}";
echo "<p>You entered {$_SERVER['PHP_AUTH_PW']} as your password.</p>";
}
?>
description of inidices in $_SERVER
:
'PHP_AUTH_USER'
:当在Apache或IIS(PHP 5上的ISAPI)下运行作为执行HTTP身份验证的模块时,此变量将设置为用户提供的用户名。
'PHP_AUTH_PW'
:当在Apache或IIS(PHP 5上的ISAPI)下运行作为执行HTTP身份验证的模块时,此变量将设置为用户提供的密码。
答案 1 :(得分:2)
如果你在IIS下运行PHP并使用Windows身份验证,你应该在其中一个(或多个)下找到用户名:
忘记密码 - 当PHP启动时,用户已经被授权并且脚本不需要它。
您可以使用Windows身份验证以用户身份登录SQL Server:查看fastcgi.impersonate的文档。只要IIS和SQL Server位于同一系统上,这就可以正常工作。如果你把你的数据库保存在其他地方......好吧,如果你想要血腥细节,你可以google for Double Hop issue ,但简短的故事是它不起作用。我已经失去了一个月等待客户放弃并允许普通用户/通行证登录到他的数据库。
答案 2 :(得分:0)
当搜索IIS和auth_user缺失时,我可能会找到一个解释原因:如果你将文件夹权限设置为每个人:读取和执行,$ _SERVER ['_ USER']没有任何值。
答案 3 :(得分:-1)
在JodoHost上使用$_SERVER['REDIRECT_REMOTE_USER']
代替$_SERVER['PHP_AUTH_USER']
。
此外,如果您想查看所有服务器变量,请创建一个小型PHP测试页面并将PHP代码放在其中。
如果您以用户身份登录,则会看到哪个字段包含您的用户名。
此外,将此测试文件放入受.htaccess:
保护的目录中PHP代码:
foreach($_SERVER as $key_name => $key_value)
{
print $key_name . " = " . $key_value . "<br>";
}