0

(最新の) Codeigniter に奇妙な問題があります。ログインにはセッションクラスを使用します。ログイン後、セッションにいくつかのユーザーデータを保存します。

アプリケーションをローカルで開発しましたが、ログインは正常に機能します。アプリケーションが完成したら、Web サーバーhttp://mijn.exova.nl/にアップロードしました。アプリケーションは 1 日問題なく動作しました。しかし、1 日後、セッションはログイン後に保存されません。ローカルからコードを再度アップロードしましたが、問題はまだ存在します。リダイレクトの前に、セッションはまだ存在しています。リダイレクト後、セッションは空です。

コード:

構成設定セッション (デフォルト)

$config['sess_cookie_name']     = 'ci_session';
$config['sess_expiration']      = 7200;
$config['sess_expire_on_close'] = FALSE;
$config['sess_encrypt_cookie']  = FALSE;
$config['sess_use_database']    = FALSE;
$config['sess_table_name']      = 'ci_sessions';
$config['sess_match_ip']        = FALSE;
$config['sess_match_useragent'] = TRUE;
$config['sess_time_to_update']  = 300;
$config['cookie_prefix']        = "";
$config['cookie_domain']    = "";
$config['cookie_path']  = "/";
$config['cookie_secure']    = FALSE;

クリエイションセッション(館内)

$this->CI->session->set_userdata('exova_login', true);
$this->CI->session->set_userdata('exova_userdata', $userdata);
$this->CI->session->set_userdata('exova_rollen', $rollen);
$this->CI->session->set_userdata('exova_school', $school);

リダイレクト (セッションが OK になる前、セッションが空になった後)

redirect(base_url());

この問題が発生した理由を誰かが知っていますか? ありがとう!

4

1 に答える 1

0

それは再び動作します!正確な問題は不明ですが、ブラウザのデータをすべて削除すると、再び機能します。セッションを2回ではなく設定することが非常に重要であることを学びました。これを追加して解決しました:

if($this->CI->session->userdata('exova_login') == false){

セッションセットの周り。セッションが 2 回設定されることはなく、このような問題を確実に回避できます。コメントありがとうございます。

于 2013-08-09T09:17:00.590 に答える