私は、さまざまな用途と複雑さのために複数のCookieセッションインスタンスを作成するように拡張できる抽象クラスSessionを持つCookieベースのセッションメカニズムを構築しています…。
また、アクセス許可とユーザーの実際のログインおよびログアウトを処理するAuthクラスもあります。Authクラスを実行するには、のセッションクラスまたは子クラスが必要です。
これまでのところすべてが素晴らしいです。ユーザーをログインさせたり、一定の時間が経過した場合、IPアドレスが一致しない場合などにログアウトすることもできます。
ページが読み込まれるたびにCookieが読み取られ、不整合がないかチェックされ、xyzに応じてCookieが破棄または更新されます。破棄スクリプトは、Cookieの時間をマイナスに戻し、認証ライブラリから追加されたユーザーデータをすべて削除します。これは、ログインして数分待ってから更新を押すと、Cookieがぼやけて、ログイン画面に戻ってしまうので機能します。
ただし、ボタンをクリックしてログアウトしたい場合は、破棄スクリプトが機能しません。つまり、元のユーザーデータを上部にエコーして、ログアウトをエコーし、エラーなどなしですべての機能を実行するログアウトスクリプトを実行できます。その後、ユーザーのCookieを取得しても、同じです。これが自動チェックでどのように機能するのか理解できませんが、ユーザーがログアウトボタンを押したときは理解できません…</ p>
以下は私のsessionDestroy関数です
protected function sessionDestroy($cookieName) {
setcookie(
$cookieName,
addslashes(serialize(array())),
(time() - 3600),
0
);
}
PS私は破壊がクッキーにとって悪い言葉であることを知っていますが、あなたは私が何を意味するか知っています……うまくいけば