1

Codeigniterを使用してセッションを操作しようとしていますが、ブラウザを更新するたびに新しいセッションが作成されることがわかりました...これは意味がありません。すべてのセッションを削除しようとすると、新しいセッションが取得されます。誰かがこのエラーを見たことがありますか?

これは私のコードです:

$this->load->library('session');
print_r  ($this->session->all_userdata());
$this->session->sess_destroy();

したがって、sess_destroyを使用してセッションを削除しますが、サイトを更新すると新しいセッションが発生します。

4

2 に答える 2

2

うーん、確かにsess_destroyは古いセッションを破棄するので、もちろん更新時に新しいセッションを取得します。

編集:

Session.phpでのクイックピーク後に確認済み

/**
 * Destroy the current session
 *
 * @access  public
 * @return  void
 */
function sess_destroy()
于 2012-07-10T18:46:21.083 に答える
2

あなたが説明するのは、デフォルトの通常の動作です。「セッションはどのように機能しますか?」を参照してください。CodeIgniterユーザーガイドのセッションクラスの章のセクション。それは言う:

セッションデータが存在しない場合(または有効期限が切れている場合)、新しいセッションが作成され、Cookieに保存されます。

これは、Sessionクラスが以前に開始されている場合に提供されます。

$this->load->library('session');

ここでは正確に何が起こっているのでしょうか。

セキュリティが心配な場合でも、心配する必要はありません。新しいセッションは、前のセッションのデータを引き継ぎません。

最後に、何らかの理由でセッションを破棄して条件付きで開始する場合は、次の条件でセッションが存在するかどうかを確認します。

if($this->session->userdata('username') === FALSE )

マニュアルに記載されているように:

:アクセスしようとしているアイテムが存在しない場合、関数はFALSE(ブール値)を返します。

于 2012-07-10T19:22:28.857 に答える