2011-01-29 50 views
0

我有像這樣笨 - 使庫自動運行

<?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/'); 
     } 
    } 
} 

?> 

在autoload.php一個lib我

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

我想要做的:如果我沒有餅乾「檸檬「,當我嘗試訪問我的網站的任何頁面時,我將重定向到谷歌

問題:我沒有被重定向到谷歌。

回答

4

您可以使用MY_Controller擴展默認控制器,然後在所有控制器中擴展該控制器。

在應用程序/庫/ 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 
     } 
    } 
?> 

要www.site.com/index.php/home將您重定向如果你沒有檸檬餅乾。

你也可以用鉤子做這樣的事情,我不確定,因爲我從來沒有用過它們。

+0

這就是我會如何去做的。 – 2011-01-31 04:47:10

0

在庫中添加類之後,您需要調用函數Check()以使其執行或將該代碼放入構造函數中。

+0

謝謝,但我正在尋找一種解決方案,無需在每個控制器中調用check()。 – 2011-01-29 07:26:34

0

你爲什麼不只是把這些代碼在Iadmin類的構造函數?這應該可以解決您的問題,check方法不會自動調用。