1255789735 PEAR AUTHについてのご質問です。


http://q.hatena.ne.jp/1249096109

↑の質問で「ユーザー向け」と「運営者向け」の管理画面を作り運営者向けには

$auth->setSessionName('hogehoge');

と設定することで解決できたのですが、以下のように
運営者の管理画面からログアウトをすると、
ユーザーの管理画面からもログアウトしてしまいます。

↓以下ソースです
============================================================

// セッションの初期化
session_start();

// セッション変数を全て解除する
$_SESSION = array();

// セッションを切断するにはセッションクッキーも削除する。
// Note: セッション情報だけでなくセッションを破壊する。
if (isset($_COOKIE[session_name()])) {
setcookie(session_name(), '', time()-42000, '/');
}

// 最終的に、セッションを破壊する
session_destroy();

============================================================

どのようにすればユーザー側でログイン状態を保持したまま
管理画面からログアウトできるのでしょうか?

ご教授のほど宜しくお願い致します。

※実際にはそういった使い方をすることはほぼないのですが、
知識として身につけておきたいのです。

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:2009/10/17 23:28:58
  • 終了:2009/10/24 23:30:03

回答(2件)

id:scrap49 No.1

scrap49回答回数18ベストアンサー獲得回数42009/10/18 01:25:19

ポイント35pt

$auth->setSessionName('hogehoge');

を設定すると、

$_SESSION['_auth_hogehoge']

に認証情報が入ります。

この値をunsetすれば管理画面からのみログアウトできると思います。

http://pear.php.net/manual/ja/package.authentication.auth.auth.l...

id:gelgelgel

ご回答ありがとうございます。

頂いた情報をヒントに以下のようにすることで

運営者からのみログアウトすることができました。

============================================================

// セッションの初期化

// session_name("something")を使用している場合は特にこれを忘れないように!

session_start();

// セッション変数を全て解除する

$_SESSION['_auth_hogehoge'] = array();

// セッションを切断するにはセッションクッキーも削除する。

// Note: セッション情報だけでなくセッションを破壊する。

if (isset($_COOKIE['_auth_hogehogen'])) {

setcookie('_auth_hogehoge', '', time()-42000, '/');

}

// 最終的に、セッションを破壊する

session_destroy(_auth_hogehoge);

============================================================

よろしければご回答にある「unset」を用いた場合のソースも教えて頂けますでしょうか?

2009/10/18 08:24:44
id:scrap49 No.2

scrap49回答回数18ベストアンサー獲得回数42009/10/18 14:28:21

ポイント35pt

私が使っているソースはこうなっています。

session_start();

session_regenerate_id(TRUE);

require_once "Auth/Auth.php";

require_once "../../auth_conf.php";

$auth = new Auth("DB", $params,"loginFunction");

$auth->logout();

unset($_SESSION['_auth_hogehoge']);

header("Location: https://example.com/hogehoge/");


http://q.hatena.ne.jp/1255789735

id:gelgelgel

ご回答ありがとうございます。

まだ試せていないのですが後ほど試させて頂きます。

2009/10/21 16:11:07

コメントはまだありません

この質問への反応(ブックマークコメント)

トラックバック

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません