2011-01-29 2 views
0

나는 내가 원하는 무엇CodeIgniter는 자동으로

$autoload['libraries'] = array('iadmin'); 

이있는 autoload.php에서 너무

<?php if (! defined('BASEPATH')) exit('No direct script access allowed'); 

class Iadmin { 

    function check() 
    { 
     $CI =& get_instance(); 
     $CI->load->helper('url'); 
     $CI->load->helper('cookie'); 
     if(!get_cookie('lemon')){ 
      redirect('http://www.google.com/'); 
     } 
    } 
} 

?> 

같은 lib에있는 라이브러리 실행을 레몬 "으로 설정하면 내 웹 사이트의 모든 페이지에 액세스하려고 할 때 google로 리디렉션됩니다.

문제 : Google로 리디렉션되지 않습니다.

답변

4

MY_Controller를 사용하여 기본 컨트롤러를 확장 한 다음 모든 컨트롤러에서 확장 할 수 있습니다. www.site.com/index.php/home가 리디렉션 것에 응용 프로그램/라이브러리에서

/MY_Controller.php 응용 프로그램에서

<?php 
    class MY_Controller extends Controller { 
     function __construct(){ 
      parent::__construct(); 

      $this->load->helper('url'); 
      $this->load->helper('cookie'); 
      if(!get_cookie('lemon')){ 
       redirect('http://www.google.com/'); 
      } 
     } 
    } 
?> 

/컨트롤러/home.php

<?php 
    class Home extends MY_Controller { 
     function __construct(){ 
      parent::__construct(); 
     } 

     function index(){ 
      // Index page 
     } 
    } 
?> 

은 간다 레몬 쿠키가 없다면.

후크로 이런 일을 할 수도 있습니다. 사용하지 않았으므로 확실하지 않습니다.

+0

이것이 내가 어떻게 할 것인가입니다. –

0

라이브러리에 클래스를 추가 한 후 Check() 함수를 호출하여 실행하거나 생성자에 코드를 추가해야합니다.

+0

감사하지만 모든 컨트롤러에서 check()를 호출 할 필요가없는 솔루션을 찾고 있습니다. –

0

왜 그냥 Iadmin 클래스의 생성자에서 그 코드를 삽입하지? 문제가 해결되면 check 메서드가 자동으로 호출되지 않습니다.

관련 문제