2011-06-21 9 views
1

を置くために、私はCIベースのサイトのためのシンプルなログインシステムを構築していると私は私が私の機能を配置する場所がわからないよ:CodeIgniterのアプリケーション: - ログインしているイン機能:

is_logged_in() 
    // check if session logged in stuff exists 
    // if not check for cookie and reset from that 
    // return true or false 

まず始めに、私はいくつかの公開ページからこれを呼び出す必要があります。そうすれば、あなたは[あなたは[blah]としてログインしています。メンバーエリアに進む '。

これを自分のログインモデルに配置し、コントローラから呼び出して、単に結果(logged_in:true/false)を自分のビューに渡すのは意味がありますか?

答えて

1

ほとんど。

これはモデルかもしれないし、ライブラリの問題かもしれません。質問は、自分がログインしているかどうかを保存する方法になります。個人的には、一般的に、特定のモデルを呼び出すライブラリに入れます。最初はあまりエレガントではありませんが、現実的には、 $_SESSIONまたは私の$this->sessionがあります。そのうちの1つは、優れた認証システムを使いたい場合に必要です。ビューと通信する方法については

、いくつかの方法があります:

  1. は、ビューに渡される特別な変数としてそれを持っている:
    ボーナス:それは最も明白です。
    ダメージ:1回の呼び出しで表示する必要があります。つまり、ローダーをオーバーライドするか、すべてのコントロールを更新します(総重量)。
  2. 定数として定義しましたか:
    ボーナス:ビューにロジックがある場合は、はるかに簡単です。
    デリケート:定数はまれにしか行きません。デバッグは難しく、CodeIgniterのやり方ではありません。

  3. ボーナス:比較的簡単にデバッグすることができる汎用アクセス可能な値です。
    損害を及ぼす:ライブラリおよび/またはモデルについて知っているヘルパーが必要です(これは実際にform_helperに建てられたの真のですが、それはまだワームのことわざの缶を開ける)と、それはおそらく一機能ヘルパーになりますファイル。
  4. コントローラからのビューを条件付きで含む
    ボーナス:ビューからすべてのロジックを削除します。
    破損:コントローラにロジックを認識させる必要があります。

個人的には、#3の& 4を個人的に使用する可能性がありますが、それぞれには利点があります。

+0

ログイン、is_logged_in、ログアウトメソッドを持つ認証ライブラリを作成しました。セッションを処理しますが、DBインタラクションのログインモデルを呼び出します。 – gio

関連する問題