セッション破棄を使用せずに、セッション内のすべてのユーザーデータの設定を解除する方法はありますか?ユーザーをログアウトしようとしていますが、一度にすべてのユーザーデータの設定を解除する必要があります。セッションで設定された可能性のあるすべてのユーザーデータを追跡するのは面倒になりつつあります。userdataに設定されている可能性のあるすべての設定を解除したいだけです。
38116 次
4 に答える
18
これはとても簡単です!
$this->session->unset_userdata('some_name');
また
$array_items = array('username' => '', 'email' => '');
$this->session->unset_userdata($array_items);
これがお役に立てば幸いです。
編集:あなたは実際にあなたのセッションで何も追跡していないようです(ちょっと奇妙ですか?)。私が書いたこの関数を呼び出すことができます:
function unset_only() {
$user_data = $this->session->all_userdata();
foreach ($user_data as $key => $value) {
if ($key != 'session_id' && $key != 'ip_address' && $key != 'user_agent' && $key != 'last_activity') {
$this->session->unset_userdata($key);
}
}
}
もちろん、これはデフォルトのCIセッション設定を使用することを前提としています。
于 2012-05-09T02:37:41.993 に答える
2
codeigniterフォーラムからコピー:
ユーザーCookieを強制終了するだけですが、ユーザーデータは現在のリクエストが終了するまでセッションクラス内に残ります。セッションは次のリクエストで再初期化され、利用可能なユーザーデータはありません。基本的には、ユーザーとサーバーセッション間のリンクを切断するだけですが、データはリクエストが終了するまで残ります。
それがそれほど問題である場合は、次のようにすることができます。
$ this-> session-> userdata = array();
于 2012-09-24T07:48:26.330 に答える
1
なんとかやってみてください。
$this->load->library('session');
//セッションデータのパラメータを書き込みます
$this->session->unset_userdata('sessiondata');
//未設定のグループをセッションしたい場合は、試してみてください
$array_items = array('username' => '', 'email' => '');
$this->session->unset_userdata($array_items);
于 2015-05-04T10:33:15.047 に答える
0
これを試すことができます。上記の最新バージョンでは、コードは機能していません。
$unset_array_items = array('token_id', 'last_id');
$this->session->unset_userdata($unset_array_items);
于 2019-09-16T05:59:28.030 に答える