4

セッション処理に Codeigniter 2.1.0 と CI_session を使用しています。

私はこれを仮定します

  1. ページ A は、$this->session->set_userdata() を使用してセッションにいくつかの変数を設定します。
  2. ページ A がページ B にリダイレクトされる
  3. ページ B は、ページ A で設定されたセッション変数を保持する必要があります。

しかし、これは私に起こることです

  1. ページ A は、$this->session->set_userdata() を使用してセッションにいくつかの変数を設定します。
  2. ページ A がページ B にリダイレクトされる
  3. ページ B は、ページ A で設定されたセッション変数を保持しません。

ページ B にリダイレクトする前に、ログに $this->session->userdata の内容を保存して記録するコードがページ A にあります。ログは、セッションに設定された値が存在することを示しています。

ただし、ページ B の $this->session->userdata で var_dump() を使用すると、それらの値が存在しないことがわかります。

これがどうしてなのか、よくわかりません。ページ B の値を設定解除していないことを再確認しました。

何か案は?

編集: はい、データベースを使用してセッション データを保存しています。フィールド タイプは TEXT です。

4

1 に答える 1

1

私がネットワークから理解していることから、Cookie とセッションはサーバーではなくクライアント マシンに保存されます。したがって、HTTP は基本的に、Cookie とセッションをリクエスト ヘッダーに追加してリクエストを送信します。

ただし、この場合、セッションを設定してから、サーバーの同じページからリダイレクトしています。通常の PHP はこれを別の方法で処理する可能性がありますが、codeIgniter はネイティブ PHP セッションを使用しません。( http://ellislab.com/codeigniter/user-guide/libraries/sessions.htmlを参照)

これは私の推測です。しかし、あなたのコードを見てみると役に立ちます。

于 2013-01-01T10:19:03.937 に答える