2011-07-15 22 views
4

CodeIgniterでセッションがどのように機能するのだろうか。ブラウザが閉じられたときにセッションが自動的に削除されるとは限りませんか? CodeIgniterでは、デフォルトで、近くにブラウザ上でセッションを破壊しない:ブラウザが閉じてもCodeIgniterがセッションデータを保持する方法は?

$config['sess_expire_on_close'] = FALSE; 

代わりに、我々は時間を期限切れのセッションを設定することができます。

$config['sess_expiration']  = 7200; 

を今例えば、私は0に有効期限を設定した場合、それは意志限り、私は自分で破壊しないように、セッションを維持:

$this->session->sess_destroy(); 

を、どのようにCodeIgniterには、ブラウザを閉じた後であっても、特定の時間のためのセッション情報を保持していますか?

また、このデフォルト設定(ブラウザを閉じるとセッションが終了しない)を使用して、数日間ユーザーログインを維持すると安全ですか? (例えば、セッション中にストアする'logged_in' => TRUE

答えて

3

CodeIgniterのセッションはデフォルトのPHP $_SESSIONを使用しません。これは、独自の実装をクッキーとともに使用します。だからあなたがあなたのブラウザを閉じると破壊されないのです。 $config['sess_use_database'] = TRUE;というオプションを持つCodeIgniterのデータベースとのセッションを使用することもできます。http://codeigniter.com/user_guide/libraries/sessions.html

+0

はい、私は同じと思っていましたが、正確にはわかりませんでした。これは、あらゆるフレームワークや言語の古典です。現在のHTTP/HTMLでは、セッションハンドラのようにクッキーしかありません。それはいつ国家になるのだろうか? : – gaRex

+0

@TrexXx返信ありがとうございます。クッキーを使用することは、セッションに比べて非常に安全ではないと言われています。 – Roman

+0

docは、アプリケーションに必要な場合にセッションをデータベースと併用することをお勧めしています強力なセキュリティです。設定が簡単です。必要に応じてテーブルを作成し、いつものようにセッションクラスを使用します。 – TrexXx

関連する問題