2012-03-01 18 views
0

私はログインフォームをナビゲーション(テンプレート)に入れて、すべてのページに表示させたいと思っています。 と、他のページに行くことなくデータベースのユーザー名とパスワードを確認します。失敗した場合、ナビにエラーが表示され、成功した場合は、特定のコモロメーションでページが再度読み込まれます。コードと詳細を教えてください。codeigniter動的テンプレートを作成する

私は、テンプレート内のこれらの部分があります。

  1. ヘッダを
  2. NAV

は、私はこれを実行したい、現在のコントローラに追加されますフッター

  • とコンテンツ各コントローラ:

    $this->load->view('templates/header'); 
    $this->load->view('templates/nav'); 
    $this->load->view('related_view'); 
    $this->load->view('templates/footer'); 
    

    ナビゲーションにはログインフォームが含まれている必要があります。ログインフォームは送信して別のページに移動しません。

  • 答えて

    0

    auloadからか、お使いのコントローラからロードされているようにしますControllerクラスを拡張します。したがって、この場合は、拡張コントローラー(たとえばMY_Controller)を作成し、ダイナミックアクション(ここでは認証)をメソッドとして配置する必要があります。

    次に、このコントローラを各コントローラで拡張して、テンプレートの認証を簡単に処理する必要があります。

    0

    は、私は通常、このような何かを:

    <?php 
    $this->load->view('templates/header'); 
    
    if ($this->user_model->isLoggedIn()) 
    { 
        // Logged-in users should see this view 
        $this->load->view('templates/nav-registered'); 
    } 
    else 
    { 
        // Guests should see this 
        $this->load->view('templates/nav-guest'); 
    } 
    
    $this->load->view('related_view'); 
    $this->load->view('templates/footer'); 
    

    あなたはEVERYコントローラメソッドでこれをコーディングする必要がない、自動的にあなたのためにあなたのヘッダー/フッターをつかむために、Loaderクラスをオーバーライドする場合は、自分自身に感謝します。ただ、思考..

    +0

    私の質問はどこにログインコントローラとモデルを配置するのですか? ci_controllerとci_modelを拡張した別のクラスですか?もしそうなら、現在のコントローラにそれらを含めるにはどうすればいいですか?あなたが知っている、例えば、これは私のニュースコントローラであり、私はこれらのテンプレートビューをこのコントローラにロードします。ログインフォームにはaction = ""があるので、現在のページにデータを投稿します。ログインコントローラとモデルは、現在のコントローラ(ニュースコントローラ)でログインチェックを処理するために何らかの方法でアクセスできる必要があります。答えのためのthx! – Aliweb

    +0

    なぜすべてのURIでログインを処理したいのですか?なぜあなたはログインフォームを持っていない*常に*同じコントローラのアクションを指しています。そうすれば、毎回のログイン時にデータを不必要にチェックする必要はありません。 – landons

    +0

    よく私はそれを必要とします。私の質問は一般的なものであり、ダイナミックなテンプレート(ここではナビゲーション)に関することです。ログインフォームは単なる例です。たとえば、ナビゲーションに何かランダムなニュースを表示したい、または静的なテキストだけでなく動的なものを表示したいとします($ this-> load-> view()は機能しません)。あなたは動的なアクションがコントローラと多分モデルを必要とすることを知っている。私の質問は、メインのコントローラの内部でこれらのコントローラとモデルを扱う方法です – Aliweb

    0

    使用セッションlogedユーザーをチェックして、ナビゲーションビューでこれを置くが、最初に必ずセッションは私が見つけた解決策がある

    if($this->session->userdata('user_loged')){ 
         //code to put some navigation when use is loged 
    }else{ 
        //code to put login form 
    } 
    
    関連する問題