如何设置PHP_AUTH_USER

时间:2010-08-25 12:45:47

标签: php authentication credentials

PHP_AUTH_USER为空。 和系统使用Windows登录凭据。

如何更改它。

我想使用用户输入的用户名和密码

4 个答案:

答案 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身份验证,你应该在其中一个(或多个)下找到用户名:

  • $ _ SERVER [ 'LOGON_USER']
  • $ _ SERVER [ 'AUTH_USER']
  • $ _ SERVER [ 'REDIRECT_LOGON_USER']
  • $ _ ENV [ 'REDIRECT_LOGON_USER']

忘记密码 - 当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>";
}