解除に私はPHPSESSID値
を知っているとき場合、他のセッションから1つの変数のみが、はい、これが可能であり、あなたが希望そのセッションのセッションIDを知っておく必要があります可能性。これは、変数/値の設定を解除するのが好きです。
現在のユーザーセッションを変更せずに行うことはできますか?
標準のPHP関数を使用したい場合、セッションを切り替えることはできません。サードパーティのライブラリを使用すると、セッションを切り替えずにそのことができます。
PHPSESSIDのセッションが存在するかどうかを確認します(存在する場合)。unset($_SESSION['something'])
のPHPSESSIDを選択します。
$unsetFromSessionID = ... ; # set your session id from where you want to unset from
$unsetVariableName = 'something'; # set the variable name
$backupSessionID = session_id($unsetFromSessionID);
session_start(); # load session data
unset($_SESSION[$unsetVariableName]);
session_commit(); # save changes to disc
session_id($backupSessionID); # switch to current session
session_start();
あなたは、他のセッションがアクティブであったかどうかを検索したい場合は、これはでは不可能である。
これはphp destroy a session which is not the current sessionへの答えにかなり似ていますが、唯一の特定のメンバーを削除することですこのメソッドとPHP内から、session_start()
に新しい空のセッションが作成されるため、それは存在しません。
代わりに、セッションストアを直接使用することもできます。ディスク上のセッションファイルを探し、内容をロードし、変数を削除して保存し直します。これを行うことができるPHPライブラリはSerializedですが、それは良い出発点かもしれないSession File Viewerの例で出荷されています。
も参照してください:あなたは、各ログインのセッションIDを変更したい場合はHow to tell if a session is active?
これは可能ですが、それほど簡単ではありません。私はこれが悪い設計であることを示唆したい、あるユーザは別のユーザのセッションで何もする必要はないはずである。解決したいものを解決するための別の方法を探してみてください。 – deceze
あなたはどのように複数のセッションを持っていますか? –
私は他の解決策を持っています。 CRONがセッションを引き継ぎ、1つの変数を変更できるようにすることができます。 'session_id($ variable_PHPSESSID); session_start(); 'しかし、私はそれを他の方法でしたいと思います。私はもっと簡単な方法でそれができると思った。しかし、私もスクリプトを再構成することを考えます。 – Lucas