2011-09-12 8 views
4

ルータにログインしようとしたときと同じ方法で、PHPでユーザ認証を作成する方法。ルータのログインのようなPHPユーザ認証

enter image description here

私は例のURLを入力し、ユーザ名とパスワードを尋ねる上の画像のようなプロンプトがあるはずですwww.example.com/portal。

これはどのタイプの認証です。 PHPでそれをコード化する方法。

注:私は実行しているサーバーを完全に制御する必要があります。インストールする必要がある特別なモジュールはありますか?

答えて

3

あなたがここに生成することが2つのファイルの.htaccessと.htpasswdのを、必要になります。ドキュメントからこの例を参照してください:

<?php 
if (!isset($_SERVER['PHP_AUTH_USER'])) { 
    header('WWW-Authenticate: Basic realm="My Realm"'); 
    header('HTTP/1.0 401 Unauthorized'); 
    echo 'Text to send if user hits Cancel button'; 
    exit; 
} else { 
    echo "<p>Hello {$_SERVER['PHP_AUTH_USER']}.</p>"; 
    echo "<p>You entered {$_SERVER['PHP_AUTH_PW']} as your password.</p>"; 
} 
?> 

http://php.net/manual/en/features.http-auth.php

は基本的に、あなたが許可されていない401のステータスコードで右のヘッダを送信します。ブラウザはこれをあなたのWWW-Authenticateヘッダーと一緒に見て、ユーザーにあなたにメッセージを表示します。これが完了すると、ユーザー名とパスワードはと同様に$_SERVER['PHP_AUTH_USER']に表示されます。

基本認証を使用している場合は、ユーザー名とパスワードがプレーンテキストで送信されます。あらゆる種類のセキュリティが必要な場合は、HTTPSを使用する必要があります。また、アプリケーションによっては、効果的に「ログアウト」する方法がないことがわかります。ほとんどのブラウザーは、セッション全体のユーザー名とパスワードを覚えておいて、それ以降の要求ごとにユーザー名とパスワードを送信します。

+0

これは最高の認証タイプです。基本認証またはフォームPOST .. –

+0

@Jeyanth、これはあなたのアプリケーションに**完全に**依存します。基本認証はブラウザに組み込まれており、認証を行うための非常に純粋な方法と考えられています。ユーザーはこれに精通しています。しかし、ルック・アンド・フィールをカスタマイズすることはできないので、ログアウトやその他の問題のために、ほとんどのサイトはログオンするフォームを作成します。 – Brad

+0

@brad ..ありがとうございました! –

0

これは基本的なhttp認証です。あなたはphp.netページでチュートリアルを見つけることができます:http://www.php.net/manual/en/features.http-auth.php

これは基本的にhttpヘッダーで、ブラウザに送信する必要があります。 httpサーバ(apache/nginx)は、後で他の$ _SERVERパラメータと同様にuserdataをphpに転送します。

関連する問題