2017-05-02 5 views
0

フレームワークを使用せずにログインシステムを作成しています。管理パネルから特定のユーザーのセッションデータを破棄する方法

管理者は、すべてのユーザーが表形式で一覧表示されているページにアクセスできます。 「ユーザーをログアウト」という名前のすべてのユーザーの列にボタンがあります。 I/The adminがボタンを押すと、システム/ Webサーバーは、ユーザーI/The adminのセッションを破棄する必要があります。 ターゲットユーザーが自分のページを更新するとき、私はもうログインしません。

注: 私はすでに現在のユーザーのデータベースにsession_idを格納しています。

+0

データベースが必要です。ページが読み込まれるたびに、ユーザーが 'アクティブな'セッションにいるかどうかをチェックするPHPコードがあります。 (効率的ではありませんが、うまくいきます。)しかし、あなたが試したコードを見るのは間違いありません。 – RepeaterCreeper

+0

私は、セッションが現在セッション内の変数でアクティブであるかどうかをチェックします。可能であれば、「アクティブ」です。ページが読み込まれ、ユーザーがセッションに入るたびに、セッション変数の1つにあるuser_idでデータベースを更新するだけです。 –

答えて

0

セッションIDを持っているので、そのセッションをハイジャックして破棄することができます。サーバーからセッションIDを取得し、この関数に渡します。

function destroy_third_party_session($in_session_id){ 
    session_id($in_session_id); // Sets the session id; 
    session_start(); // starts the session as that session id 
    session_destroy(); // destroy the session 
    session_commit(); 
} 
+0

私はそれを試みます。 session_ID()にセッションIDを渡すと、ターゲットユーザーのセッションを「使用していますか?」そして、強制的に彼をログアウトさせる? –

+0

私はphpdocsでunlink( 'session.save_path') '\ sess _'。$ in_session_id)を見つけました。しかし、Webサーバー上でユーザーのセッションファイルを削除しようとするとリソースが一時的に使用できなくなるという警告が表示されます。 –

+0

はい、ユーザーセッションを使用しますが、すぐにセッションを破棄しているので問題にはなりません。私はphpdocsで何が示唆されているのか分かりません。 – coderodour

関連する問題