0

$_SERVER['Remote_User']社内アプリのユーザーを認証するための変数を取得しようとしても無駄です。

CGIとして実行されているPHPでこれを行う方法はありますか?

グーグルで見つけたすべての回避策を試しました(.htaccessで変数を設定し、b64でエンコードされた文字列を爆発させる書き換えルール)。

または、私のサイトにアクセスした人のユーザー名を取得するための他の巧妙な方法はありますか?

これが私の $_SERVER 配列のプリントアウトです:

Array
(
[HTTP_HOST] => tnxp.telenor.net
[HTTP_USER_AGENT] => Mozilla/5.0 (Windows NT 6.1; rv:12.0) Gecko/20100101 Firefox/12.0
[HTTP_ACCEPT] => text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
[HTTP_ACCEPT_LANGUAGE] => en-us,en;q=0.5
[HTTP_ACCEPT_ENCODING] => gzip, deflate
[HTTP_CONNECTION] => keep-alive
[HTTP_CACHE_CONTROL] => max-age=0
[PATH] => /sbin:/usr/sbin:/bin:/usr/bin
[SERVER_SIGNATURE] => 
Apache/2.2.15 (Red Hat) Server at tnxp.telenor.net Port 80


[SERVER_SOFTWARE] => Apache/2.2.15 (Red Hat)
[SERVER_NAME] => tnxp.telenor.net
[SERVER_ADDR] => 10.179.98.20
[SERVER_PORT] => 80
[REMOTE_ADDR] => 148.121.183.28
[DOCUMENT_ROOT] => /var/www/html
[SERVER_ADMIN] => root@localhost
[SCRIPT_FILENAME] => /var/www/html/ew/index.php
[REMOTE_PORT] => 50315
[GATEWAY_INTERFACE] => CGI/1.1
[SERVER_PROTOCOL] => HTTP/1.1
[REQUEST_METHOD] => GET
[QUERY_STRING] => 
[REQUEST_URI] => /ew/
[SCRIPT_NAME] => /ew/index.php
[PHP_SELF] => /ew/index.php
[PHP_AUTH_USER] => t820082
[PHP_AUTH_PW] => asdf
[REQUEST_TIME_FLOAT] => 1359703708.68
[REQUEST_TIME] => 1359703708
)

理想的には、これに [REMOTE_USER] =>クライアントのユーザー名を含めたいと思います

どんな助けでも大歓迎です!!

4

2 に答える 2

0

たぶん、このようなものですか?

$loginName = substr($loginName, 0, 2).strToLower(substr($loginName, 2));



$authorizedUserList = Array();

$authorizedUserList[] = "user1";

$authorizedUserList[] = "user2";

$authorizedUserList[] = "user3";

$authorizedUserList[] = "user4";
forEach($authorizedUserList as $authorizedUser){

    if(strToUpper($authorizedUser) == strToUpper($loginName)){

        $authCheckPass = true;

    }

}
于 2013-04-29T13:34:19.327 に答える
0

$_SERVER変数は、設定してはならないものです。これらは、スクリプトがロードされたときにサーバーによって設定され、次のロード時にリセットされます。

代わりにセッションを使用してください(必要に応じて、純粋な CGI でセッションを処理するための別のクラスもあります - Google CGI セッションだけです - そこにはたくさんのドキュメントがあります)。

于 2013-02-01T09:07:33.507 に答える