CodeVault (ユーザ投稿コードライブラリ) ポータルトップ | phpspot

  一覧 | コード登録画面
前のページに戻る
Basic認証用クラス [ 2004年11月21日 ]
<?

/**
 * Basic認証用クラス
 *  Basic認証を行うための部品
 *  作成者:
 *    KJ copyright (C) phpspot
 *  使い方:
 *   $users = (
 *       'user1'=>'pass1',
 *       'user2'=>'pass2',
 *   );
 *
 *   $a = new basicAuth($users);
 *   $flg = $a->execute();
 *   if($flg == FALSE){ echo "ログインできません";exit; }
 *   else{ echo "ログインしました"; }
 */

define("AUTH_NAME","Admin logon");

class 
basicAuth{
    var 
$users = array();
    function 
basicAuth($arg){
        if(
is_array($arg)){
            
$this->users $arg;
        }
    }
    function 
authHeader(){
        
header('WWW-Authenticate: Basic realm="'.AUTH_NAME.'"');
        
header('HTTP/1.0 401 Unauthorized');
    }
    
// Basic認証を実行
    // 戻り値 FALSE : 認証失敗,TRUE : 認証成功
    
function execute(){
        global 
$HTTP_SERVER_VARS,$HTTP_ENV_VARS;
        
$user $HTTP_SERVER_VARS["PHP_AUTH_USER"];
        
$pass $HTTP_SERVER_VARS["PHP_AUTH_PW"];
        if(
$user == ""){
            
$this->authHeader();
            return 
FALSE;
        }else{
            if(
array_key_exists($user,$this->users) &&
               
$this->users[$user] == $pass){
                return 
TRUE;
            }else{
                
$this->authHeader();
                return 
FALSE;
            }
        }
    }
}

?>

投稿者:KJ<phpedit@hotmail.com>
//phpspot.net/