我有一个security.conf文件,要求用户在访问我的网站时都要登录。 现在我希望php页面只显示我的.htgroup文件中admins组中用户的某些链接。所以问题是我如何获得由apache验证的用户所在的组,以便在我的php脚本中使用。
我的.htgroup文件看起来像这样 管理员:user1 user2 用户:user1 user2 user3 user4用户5 ....
所以用户可能是多个组的一部分,因为对于网站的某些部分,我只要求该人是用户。网站的其他部分我要求他/她是管理员,对于某些部分我需要特定的用户。
如果您有任何想法,我会非常感激。
谢谢,汤姆
答案 0 :(得分:1)
$_SERVER['REMOTE_USER']
将包含经过Apache身份验证的用户名。
您可以解析.htgroup
文件,以确定哪些组对应或连接(和查询)组信息的原始来源。据我所知,它并没有从Apache交给PHP。
答案 1 :(得分:0)
或者你可以试试这个
if (isset($_SERVER['PHP_AUTH_USER']) && isset($_SERVER['PHP_AUTH_PW'])) {
$authFile = file("./password.txt");
foreach ($authFile as $login) {
list($username, $password) = explode(":", $login);
$password = trim($password);
if (($username == $_SERVER['PHP_AUTH_USER']) && ($password == md5($_SERVER['PHP_AUTH_PW']))) {
$authorized = TRUE;
break;
}
}
}
// If not authorized, display authentication prompt or 401 error
if (! $authorized) {
header('WWW-Authenticate: Basic Realm="Secret Stash"');
header('HTTP/1.0 401 Unauthorized');
print('You must provide the proper credentials!');
exit;
}