0

許可されたユーザーにのみアクセスを許可したいので、ここに構成メソッドで認証コードを記述しました。これが私のコードです。

class cp extends CI_Controller {

    public function __construct(){
        parent::__construct();
        $this->this_mustbe_admin();
    }

    public function this_mustbe_admin()
    {

        $this->load->model('m_cp');
        $md = $this->m_cp->is_admin();
        if($md)
         return $md;
        else
        {
            redirect(base_url().'cp/login/');
        }

    }

    function login()
    {   
             $this->load->view('admin/login');

    }

しかし、私はエラーが発生します

The page isn't redirecting properly

this_mustbe_adminコンストラクトからメソッドを削除して他のコントローラーに配置すると、正常に機能します

function do_stuff(){

   $this->this_mustbe_admin();
   // do stuff 

}

しかし、このように私は私のメソッドのすべてでそれを書かなければなりません

4

2 に答える 2

3

循環リダイレクトを行っています。架空のスタック トレース:

  1. への http リクエスト/cp/
  2. __construct()
  3. this->this_mustbe_admin()-> /cp/login にリダイレクト
  4. への http リクエスト/cp/login
  5. __construct()
  6. this->this_mustbe_admin()->後藤 3.

__constructリダイレクト生成コマンドを実行する前に、実行しようとしているメソッドを確認する必要があります。

if (!$this->router->method != 'login') {
    $this->this_mustbe_admin();
}
于 2012-08-03T16:59:47.400 に答える
0

このように書いてみてください

redirect('base_url(cp/login)');

私はそれがうまくいくことを願っています....または単に与える

redirect('cp/login');

私はこのように使用したときに得たので

于 2012-08-21T11:35:07.123 に答える