PHPマニュアル/PEARマニュアル | ユーザフォーラムで議論/質問 | マニュアル検索 | ハイライト | ハイライトオフ | ポータル | php spot

Auth_Container_Multiple | JavaScript入門&応用&リファレンスなら「JavaScriptist」

  

Auth_Container_Multiple

Auth_Container_Multiple – 複数の Auth_Container に対する認証を行う

Multiple コンテナ

このコンテナは、複数の Auth_Container に対して順に認証を試みるコンテナです。

コンテナの getAuthData() が true を返すと、 Auth_Container_Multiple は true を返します。

コンテナの getAuthData() が false を返すと、 Auth_Container_Multiple はリスト内の次のコンテナで処理を続けます。 ログインが成功するか、すべてのコンテナを処理し終えるまで処理を続けます。

getAuthData() でエラーが発生した場合は、 Auth_Container_Multiple はそれ以降の処理をせず、そこでエラーを返します。

Auth コンストラクタ() へのストレージ固有の引数は、コンテナ設定の配列で指定します。 コンテナ設定は、以下のようなオプションで指定します。

使用可能なオプション
オプション データ型 デフォルト値 説明
"type" string " インスタンスを作成するコンテナの型。これは、 Auth コンストラクタ() の最初の引数で指定するものと同じ値です。
"options" array array() そのコンテナが必要とするオプションの配列。

Auth_Container_Multiple の使用例

<?php
require_once "Auth.php";
require_once 
'Log.php';
require_once 
'Log/observer.php';

// ログイン画面を表示するコールバック関数
function loginFunction($username null$status null, &$auth null)
{
    
/*
     * HTML 出力を変更し、作成するアプリケーションに
     * あわせるようにします
     */
    
echo "<form method=\"post\" action=\"".$_SERVER['PHP_SELF']."\">";
    echo 
"ユーザ名: <input type=\"text\" name=\"username\"><br/>";
    echo 
"パスワード: <input type=\"password\" name=\"password\"><br/>";
    echo 
"<input type=\"submit\">";
    echo 
"</form>";
}

class 
Auth_Log_Observer extends Log_observer {

    var 
$messages = array();

    function 
notify($event) {

        
$this->messages[] = $event;

    }

}

$options = array(
    
'enableLogging' => true,
    array(
        
'type' => 'Array',
        
'options' => array(
            
'cryptType' => 'md5',
            
'users' => array(
                
'guest' => md5('password'),
            ),
        ),
    ),
    array(
        
'type' => 'Array',
        
'options' => array(
            
'cryptType' => 'md5',
            
'users' => array(
                
'admin' => md5('password'),
            ),
        ),
    ),
);
$a = new Auth("Multiple"$options"loginFunction");

$infoObserver = new Auth_Log_Observer(PEAR_LOG_INFO);

$a->attachLogObserver($infoObserver);

$debugObserver = new Auth_Log_Observer(PEAR_LOG_DEBUG);

$a->attachLogObserver($debugObserver);

$a->start();

if (
$a->checkAuth()) {
    
/*
     * サイトに出力する内容をここに書きます
     */
    
print "認証に成功しました。<br/>";
}

print 
'<h3>ログ出力</h3>'
    
.'<b>PEAR_LOG_INFO レベルのメッセージ</b><br/>';

foreach (
$infoObserver->messages as $event) {
    print 
$event['priority'].': '.$event['message'].'<br/>';
}

print 
'<br/>'
    
.'<b>PEAR_LOG_DEBUG レベルのメッセージ</b><br/>';

foreach (
$debugObserver->messages as $event) {
    print 
$event['priority'].': '.$event['message'].'<br/>';
}

print 
'<br/>';
?>

Note

このコンテナは、バージョン 1.5.0 以降でのみ使用可能です。

忘却曲線を使ってこの知識を確実に記憶に残す

フォーラムで「Auth_Container_Multiple」について話す
各種マニュアル: PHPマニュアル | PEARマニュアル | Smarty(英語)マニュアル | PHP-GTKマニュアル | Auth_Container_Multiple」をGoogle検索
copyright © 1997-2024 PHP ドキュメント作成グループ(ライセンス). provided by php spot. マニュアル: