0

私はhtaccessの使用の初心者です、私はグーグルで答えを検索しましたが、私にとって良いものを見つけられませんでした。

わかりやすいことをしたいのですが(適切な方法があると思います)、どうしたらいいのかわかりません。

私はそれらの3つのファイルを持っています:

.htaccess

AuthName "Restricted Area"
AuthType Basic 
AuthUserFile /path/.htpasswd
AuthGroupFile /path/.htgroups
require group intern
require group extern
require group test

.htpasswd

user1:xxx
user2:yyy
user3:zzz

.htgroups

group1:user1 user3
group2:user2

そしてphpで私はグループでテストをしたいと思います。私はいくつかのグループに多くのユーザーがいて、いくつかを追加および削除するので、やりたくないです:

if($_SERVER['PHP_AUTH_USER'] == 'user1' || $_SERVER['PHP_AUTH_USER'] == 'user2')

しかし

if($group == 'group1')

この変数$groupを取得する簡単な方法を見つけるのを手伝ってもらえますか?

どうもありがとう、

バスティアン

4

2 に答える 2

1

php.net でいくつかの調査を行った後、ファイル (ここでは .htgoups) 内のパターンを照合する方法を見つけたので、この関数を実行してログに記録されたユーザーのグループを取得しました。

function getHtGroup(){
    $AuthGroupFile = file("/path/.htgroups");
    $user = $_SERVER['PHP_AUTH_USER'];
    foreach ($AuthGroupFile as $line_num => $line) {
        if(preg_match("/(.*):(.*)$user/", $line, $matches)){
            $group=$matches[1];
            break;
        }
    }
    return $group;
}
于 2012-08-30T08:19:57.600 に答える