2

ログインセッションをクリアするための違いと最も安全な方法は何PHPですか?基本的に、ユーザーが私のアプリケーションをクリックlog outしたときにこれを呼び出します。

私は見ています:

 session_destroy()
 session_unset()

または単に行う:

unset($_SESSION['my_key_1']);
unset($_SESSION['my_key_2']);

最善の方法は何ですか?

4

3 に答える 3

12

session_destroyはセッション全体を削除しています。

session_unsetは、セッションから変数を削除します-セッションはまだ存在します。データのみが切り捨てられます。

したがって、メモリを解放したい場合は、session_destroyが最適です。

于 2012-11-09T06:50:49.247 に答える
1

私が知っている最善の解決策は、session_regenerate_id(true);

これにより、現在のセッションデータが削除され、セッションIDが再生成されます。

新しいセッションIDを割り当てることは、ユーザーを完全に新しいものとして扱うのに役立つため、良い考えです(コード内の何かがセッションIDに依存している場合)。

于 2012-11-09T06:51:30.023 に答える
1

このsession_unset()関数は、現在登録されているすべてのセッション変数を解放します。つまり、これを行います:

unset($_SESSION);
$_SESSION = array();

このsession_destroy()関数はセッション全体を無効にします!セッションは行われていません。

于 2012-11-09T06:52:10.723 に答える