2016-04-04 11 views
1

http認証方法を使用して、Webページに着信するとすぐにユーザーにプロンプ​​トボックスを表示します。現在のところ、リンクがクリックされると、プロンプトボックスが開きます。しかし、私は、Webページをロードし、プロンプトボックスをロードする必要があります。背景にイメージを追加する方法はありますか?PHPでHTTPベーシック認証を使用すると、バックグラウンドで画像を表示する方法

if (($_SERVER['PHP_AUTH_USER'] != 'abcd') || ($_SERVER['PHP_AUTH_PW'] != 'abcd123')) 
{ 
    header('WWW-Authenticate: Basic Realm="Enter Your Credentials"'); 
    header('HTTP/1.0 401 Unauthorized'); 
} 
    echo('You are valid');   
+0

正当な資格情報を入力しなくてもユーザーにWebページを表示したい場合、パスワードで保護する必要がない場合にパスワードを要求する理由は何ですか? – DevilaN

+0

私は自分のローカルネットワークでこれをやっています。特に事務所の目的のために。しかし、私はユーザーに空白のページを見せたくありません。 – Priyanshu

+0

実際には、あなたのPHPはブラウザにデータを送信しています(他の人が死んでも実行しなくても、それが実行を中止するので、あなたの秘密がリクエストに含まれています)。ブラウザはレンダリングしていないだけです。セッションの代わりに基本HTTP認証を実装する理由は何ですか? –

答えて

2

基本HTTP認証では、HTTPヘッダーで認証要求を送信する必要があります。詳細については、RFC 2617およびRFC 7235のホワイトペーパーをご覧ください(この回答のコメントにはさらに説明があります)。当然のことながら、このあなたもheader() function上のPHPマニュアルに読むことができるよう、(「バックグラウンドHTML」など)の前に、他のデータのために許可されていません:

(そのヘッダーを忘れないでください)は、任意の実際の前に呼び出さなければなりません出力は で、通常のHTMLタグ、ファイル内の空白行、またはPHPから送信されます。

たとえば、のような別の認証方法を使用することをおすすめします。あなたはthis guideを見ることができます。

あなたは本当にが基本HTTP認証を使用するようにを持っていると、バックグラウンドで何かを表示したい場合は、回避策は二つのファイルとの使用次のようになります。

background.htmlはあなたが表示されます所望の「背景HTML」と、あなたのブラウザーで開きますファイルです。

<h1>Beautiful background</h1> 
<!-- you can put your background HTML code here --> 

<iframe src="login.php" /> 

login.phpは基本HTTP認証、jのためのPHPコードが含まれていなければなりません上の質問の例で使用したコードと同じです。

+0

RFC 2617は[RFC 7235](https://tools.ietf.org/html/rfc7235)でかなり更新されました。それを参考にしてください。 – DaSourcerer

+0

RFC 7235はRFC 2617のHTTP/1.1アップデートではありませんか?最初の質問はHTTP/1.0ヘッダーを使用していたため、最初に古いホワイトペーパーを投稿しました。 – Jayjayyy

+0

真ではありますが、それだけではありません。 'WWW-Authenticate'はHTTP/1.xの全バージョンで有効であり、RFC 7235はより良い概観を与えています、IMHO。この日と年齢でHTTP/1.0を使用するのは非常に特別な理由が必要です) – DaSourcerer

0

いいえ、基本的なHTTP認証方法を使用して背景イメージを送信することはできません。

しかし、いくつかの魅力的な図形と単純な名前/パスワード形式の個別のスタイルのページを表示できます。正しい資格情報を送信したら、そのユーザーをセッションに格納します。つまり、すべてのページでセッションを確認する必要があります。

+0

プロンプトボックスが表示されている間に背景のスタイルを表示することはできますか? – Priyanshu

関連する問題