2012-02-27 18 views
3

スポーツに関する本当に小さなソーシャルサイトを構築しています。Codeigniterネイティブセッションまたはciセッションライブラリ

と私はネイティブのセッションまたはCIセッションライブラリを使用する方が良いでしょう場合は、より経験豊富な開発者をお願いしたいと思いますか? ciライブラリの場合は、データベースストアを使用する方が良いでしょうか?

はあなたにネイティブのセッションよりも柔軟性を与え、CIセッションライブラリはあなたを取得し、非常に迅速に行くだろう、あなたのオプション

+0

をこの

public function __construct(){ self::$instance =& $this; foreach (is_loaded() as $var => $class) { $this->$var =& load_class($class); } $this->load =& load_class('Loader', 'core'); $this->load->initialize(); log_message('debug', "Controller Class Initialized"); session_start(); } 

を行うことができ、私はCodeIgniterのセッションライブラリを考えます準備ができて使いやすく、データベースを使用するほうが良いです。これは私のポートフォリオhttp://heera.it/portfolioで、ciで構築されたほとんどのアプリを見つけることができます。 –

+0

「より良い」と尋ねるのではなく、あなたの具体的な懸念を明確にしておくことができますか?それは意味をなさない。 –

+1

@SheikhHeera恥知らずのプラグ、ええ? ;) – landons

答えて

3

いただきありがとうございます。ただし、CI_Sessionクラスは非常に妄想的です。特にAJAXに重いアプリケーションでは予期しないセッションの期限が切れることがあります。

私は、次の点に注意して、CIセッションと一緒に行くお勧めします:あなたは、おそらくいくつかの例では、セッションの更新を無視したいと思うよう

  1. は、セッションクラスを自動ロードしないでください。
  2. に最もよくすることができます、あなたはCIを通じてイメージを動的にロードするべきではありません
  3. (あなたは絶対にそれを必要とする場合は、あなたが予想外の有効期限を防ぐためにsess_update()機能をオーバーホールする必要があります)AJAX要求をセッションクラスを避けるため、それが必要な場合があります。ここでもAJAXリクエストと同じ問題が適用されます。

また、クッキー以上の容量が必要な場合はセッションをテーブルに保存する必要があります(4KB、暗号化を使用するとさらに速くなります)。データベースと一緒にやってみてください。

+1

詳細情報をありがとう、それは私の多くを助けた – Side

+0

AJAXを使用すると、コマンドライン(クッキージャー機能を使用して)でcURLを使用すると、コードイグナイターのネイティブセッションで複数の問題があります。私は真剣に暗号化しないように設定するか、回転させないか、単に他のものを使うことをお勧めします。 –

0

native session extended libraryを使用して、両方の機能を最大限に活用することもできます。 - 時間の自動クッキーIDを再生成するごとに一定量(右 今の内側に構成されたクッキーのid TTL(生存時間)によって、セッション固定に対して強化CI_Session *オーバー

利点:引用する

クラス) - 設定可能にするための注意を参照してください。あなたが利用可能なすべてのPHPのセッションストレージのドライバ(データベース、memcacheの、など) *「フラッシュ」セッション属性を使用することができます* (参照:「フラッシュ」属性)PHPsessionオーバー

利点 CI_Session との互換性* - 既存のアプリケーションをNative_sessionに簡単に移行することができます - 必要なドキュメント - CIマニュアルを使用してください:) *より良いセキュリティ(自動および手動のセッションID再生成)

PHPセッションでは、セッション名ペースは、どのIMHO あなたがセッションvarsの多数を使用することをお勧めします。私は可能な限りセッションの使用を制限するために を好むので、Native_sessionは セッションネームスペースを実装しません。 の潜在的なスケーラビリティの問題があります。

1

私はネイティブPHPセッションに行きますが、後者に問題があると思います。

ユーザーのブラウザでCookieが無効になっている場合はどうなりますか? 無効にクッキーとブラウザは、これらの日、インターネット上で遠くに取得されていませんが...しかし、まだ、彼らのクッキーはない非常に良い候補でそうCI sessioncookiesを無効にした人がいる...

だから、どのように我々は$ _SESSIONを使用することができますcodeigniterの[] このお試しください:MVCのページは、コントローラによってトリガされているので

を、我々はシステム/コア/ Controller.php

にCI_Controllerクラスに
関連する問題