1

ログインコントロールの機能があります。ユーザーがログインしなかった場合、リダイレクトしますlogin.php

私のコントローラーには多くの機能があり、この機能はウェブサイトのページを表しています。$this->is_logged_in();各関数で関数を呼び出す必要がありますか。

例えば:

class Admin extends CI_Controller{


        function index(){
            $this->is_logged_in(); // works fine like this
                $this->load->view('admin/welcome_message');
        }

        function users(){
            $this->is_logged_in(); // works fine like this
                $this->load->view('admin/users');
        }

        function comments(){
            $this->is_logged_in(); // works fine like this
                $this->load->view('admin/comments');
        }

}

すべての関数でこの関数を呼び出したくありません。コンストラクトの結果でこれを呼び出すと、無限ループになります。

4

4 に答える 4

1

このコンストラクターを追加すると、それぞれにその関数を記述する必要がなくなります。

 function __construct() {
           parent::__construct();
           if(!$this->is_logged_in()):
                 redirect(base_url()."login.php");
       }
于 2013-05-28T16:10:54.483 に答える
0

この種のことを行う最善の方法は、フック を使用することです。 codeIgniter のフックでセッション データを使用します。

それだけで十分です。

于 2013-05-28T16:25:31.637 に答える
0
public function __construct()
{
    parent::__construct();
        session_start();

        if(!isset($_SESSION['username'])){
            redirect('login');
        }

}

誰が親であるかを定義し、関数の結果を確認します。終わり

于 2013-05-28T16:13:24.940 に答える