[PHP-users 29196] setIdle でログアウトしたが、ブラウザ更新すると何故か認証されてしまいます。
佐本 達義
ttsamoto @ yahoo.co.jp
2006年 5月 12日 (金) 16:39:08 JST
samottyです。
現在、現在AuthクラスのsetIdle()で、アイドル時間オーバー
による自動ログアウトのテストを行っております。
しかし、
setIdle でログアウトしたが、ブラウザ更新すると何故か認証
されてしまいます。
ユーザ名、パスワードは何も入力していないにもかかわらず、
何故か認証されてしまいます。
ソースは下記のものを使用しております。
setIdleメソッドがそういった仕様なのでしょうか?
たびたびすみませんが、ご教授いただけないでしょうか?
よろしくお願い致します。
auth1.php --------------------------------------------
<html>
<head><title>auth test1</title></head>
<body>
<?php
require_once('Auth/Auth.php');
require_once('auth_login.php');
define('DSN', 'mysql://root:is_180ts@localhost/user_db');
$options = array('dsn'=>DSN, 'cryptType'=>'none',
'db_fields'=>'user_id');
$auth = new Auth("DB", $options, 'auth_login');
//認証の有効期限を設定するコード
//カッコ内は秒数
//$auth->setExpire(300);
//ログアウト処理までのアイドル時間
//一定時間処理がなかった場合に自動的にログアウト
//カッコ内は秒数
$auth->setIdle(10);
$auth->start();
?>
<html><head><title>Perm example 1</title>
<meta http-equiv="Content-Type" content="text/html;
charset=euc-jp" />
</head><body>
<?php
if($auth->getAuth()) {
print "認証に成功しました。<br />";
//認証に関する情報を出力するコード
print "<hr>"; print_r($_SESSION['_authsession']);
//ユーザIDを出力するコード
//print $auth->getAuthData('user_id');
}
?>
</body></html>
-------------------------------------------------------
auth_login.php ----------------------------------------
<?php
function auth_login($username, $status) {
switch($status) {
case AUTH_IDLED:
$message = '長時間アクセスがなかったため認証をリセッ
トしました。';
break;
case AUTH_EXPIRED:
$message = '有効期限切れのため認証をリセットしました
。';
break;
case AUTH_WRONG_LOGIN:
$message = 'ユーザ名またはパスワードが間違っています
。';
break;
case AUTH_SECURITY_BREACH:
$message = 'IPアドレスまたはブラウザを検出されたため
認証をリセットしました。';
break;
default:
$message = '';
break;
}
print "<i>$message</i>\n";
echo <<<EOS
<form method="post" action="{$_SERVER['PHP_SELF']}">
<table border="0" cellpadding="2" cellspacing="0"
summary="login form">
<tr>
<td colspan="2"
bgcolor="#eeeeee"><b>ログイン:</b></td>
</tr>
<tr>
<td>ユーザ名:</td>
<td><input type="text" name="username"
value="$username" /></td>
</tr>
<tr>
<td>パスワード:</td>
<td><input type="password" name="password" /></td>
</tr>
<tr>
<td colspan="2" bgcolor="#eeeeee"><input type="submit"
/></td>
</tr>
</table>
</form>
</center>
EOS;
}
?>
-------------------------------------------------------
環境:WindowsXP, Apache_2.0.58, php5.0.4, mysql4.0.26
--------------------------------------
Yahoo! JAPAN 10th Anniversary Special Feature
--- Enjoy Yahoo! Auction with Yahoo! Mail !! ---
http://pr.mail.yahoo.co.jp/auction/
PHP-users メーリングリストの案内