5

ログアウトのオプションがあり、これが私のコードです:

session_start();

session_destroy();

setcookie("key","",time()-60*60*24);

setcookie("username","",time()-60*60*24);

すべてのセッション (別のデバイス) からログアウトするための別のオプションを追加したいと考えています。たとえば、ユーザーがパスワードを変更した場合、このユーザーのすべてのセッションがクリアされ、すべてからログアウトされます。

すべてのデバイスですべてのセッションを編集するにはどうすればよいですか? セッション ID をデータベースに保存し、セッション キーでデータを変更できますか? (現在のユーザーではありません)

4

3 に答える 3

2

という名前のユーザー テーブルに日時フィールドを追加できますsession_expires_at。ページロードごとに、現在の日付/時刻を と比較しsession_expires_atます。有効期限が切れている場合は、ログアウトしてください。ユーザーが「すべてのセッションからログアウト」をクリックすると、そのフィールドを に設定するだけnow()です。

ハートビート (ajax または socket.io タイプのもの) がなければ、サーバー側からページを強制的に変更することはできません。ページの読み込み時に発生する必要があります。

于 2013-06-10T19:21:11.140 に答える
1

ここでの最善の策は、独自のデータベース ベースセッション ハンドラを作成することです。

その場合、セッションでできることを多く制御できます。それを行う方法の例を示す、良いが時代遅れの記事がここにあります。

于 2013-06-10T19:22:53.813 に答える