2012-02-24 21 views
0

私は基本認証を実行するには、次のPHPコードを書いています。ユーザーが[OK]ボタンをクリックして間違ったユーザー名またはパスワードを入力したときに、どのようにテキストを表示できるかを知りたい。私はそれを動作させると思っていたが、そうしなかった行をコメントした。PHPの認証表示テキスト間違った資格情報

$user = array('Bob' => 'bob'); 
$pass = array('Bob' => 'pass'); 
$userSuccess = false; 
$passSuccess = false; 

if(!isset($_SERVER['PHP_AUTH_USER']) && !isset($_SERVER['PHP_AUTH_PW'])) 
{ 
    header('http/1.1 401 Unauthorized'); 
    header('www-authenticate: basic'); 
    echo "<h2> HTTP Error 401: Unauthorized Access </h2>"; 
    exit; 
} 
else 
{ 
    foreach($user as $value) 
     if($_SERVER['PHP_AUTH_USER'] == $value) 
      $userSuccess = true; 
    foreach($pass as $value) 
     if($_SERVER['PHP_AUTH_PW'] == $value) 
      $passSuccess = true; 

    if(!$userSuccess || !$passSuccess) 
    { 
     header('http/1.1 401 Unauthorized'); 
     header('www-authenticate: basic'); 
     echo "incorrect stuff"; // I don't get why this line doesn't make it work. 
     exit; 
    } 
} 

ありがとうございました。

+0

の401をカスタマイズする以外には何も表示していますか?エラーメッセージが出ますか? –

+0

なぜそれは動作しないと思いますか?できます。パスワードとして何も入力および/または3回ログインすると、あなたは私のためではない、あなたの '間違ったstuff' – Cheery

+0

を取得します...私は(少なくとも一度)に間違ったことを入力してエスケープキーを押したりすることでキャンセルをクリックする必要があります"間違ったもの"を表示する。 –

答えて

1

あなたは401ページをカスタマイズする必要があります。これはサーバーによって異なります。

はたとえば、Apacheを使用して、それを許可するように設定されたと仮定した場合、あなたはErrorDocument 401 /errors/401.htmlでの.htaccessファイルを作成することができます。あなたが欲しいしかし

/errors/401.htmlを作成し、それは401エラーがスローされたときに表示されなければならないものです。 nginxのを使用して

場合は、Nginx - Customizing 404 pageを参照してください、あなたは明らかに代わり404

+0

あなたの提案をありがとう。それは動作します。上記のコードがうまくいかなかった理由を知っていますか?そしておそらく、なぜ他の人が彼らのために働くと言っているのでしょうか? –

関連する問題