-1

この問題のスタック オーバーフローで提供されている解決策を試しましたが、実際にはこの問題を解決できませんでした。

私は他の誰かによって書かれたコードに取り組んでいます。コードは次のとおりです。

$web_user = $_SERVER["PHP_AUTH_USER"];
$file_name = $web_user.'_nefops_var_sel.tab';
$state['dumper_file_name'] = $file_name;
$long_file_name = '/tmp/'.$file_name;
$state['dumper_long_file_name'] = $long_file_name;
$handle = fopen($long_file_name,'w') or die("bad file open");
fwrite($handle,$labels);    
fclose($handle);

私が得ているエラーは A PHP エラーが発生しました

重大度: 通知
メッセージ: 未定義 インデックス: PHP_AUTH_USER
ファイル名: models/export_data_model.php
行番号: 26

誰かがこれで私を助けることができますか?

4

4 に答える 4

3

PHP_AUTH_USER受け取ったエラーは、サーバーのスーパーグローバルにそのようなキーがないことを知らせています。これは、CGI で使用されることもあるベース HTTP 認証や、Apache などの Web サーバー構成で定義されるベース HTTP 認証が使用できない/有効になっていないことを意味します。

PHP_AUTH_USER が設定されていませんか?

エラー レベルは警告であるため、エラー レベルを厳密に設定しない限り、実行は停止されないことに注意してください。

あなたは他の誰かのコードに取り組んでいると言っているので、これは、コードがデータベースを使用してコードで定義された認証モデルではなく、ネイティブの Web サーバー認証を使用することを意図していたことを意味します。永続化レイヤーを使用して独自の認証メカニズムを作成するなど、これを別の場所にデプロイする場合は、代替手段を見つける必要があります。

Apache での HTTP 認証に関するドキュメント: http://httpd.apache.org/docs/2.0/howto/auth.html

于 2012-06-26T15:05:20.263 に答える
2

の状態に関するPHP ドキュメント$_SERVER['PHP_AUTH_USER']:

HTTP 認証を行う場合、この変数はユーザーが提供するユーザー名に設定されます。

つまり、HTTP 認証が行われていないということです。

HTTP authentication with PHPを読むことをお勧めします。

于 2012-06-26T15:05:36.003 に答える
0

参照する前に $_SERVER["PHP_AUTH_USER"] が設定されているかどうかを確認していないため、通知を受けています。ただし、これは単なる通知であるため、それほど重要ではありません。

于 2012-06-26T15:07:55.503 に答える
-1

エラーメッセージのエラーIDが正確にわかります。

$_SERVER["PHP_AUTH_USER"]存在しません。

于 2012-06-26T15:04:42.400 に答える