我有一個controller
稱爲成員這樣的構造函數中如何使用一個__construct功能我在其他的CodeIgniter控制器
function __construct()
{
parent::Controller();
$this->is_logged_in();
}
我想在我的另一個控制器檢查用戶在我如何使用記錄這功能我在其他控制器稱爲輪廓和其他
這是我使用CodeIgniter
我有一個controller
稱爲成員這樣的構造函數中如何使用一個__construct功能我在其他的CodeIgniter控制器
function __construct()
{
parent::Controller();
$this->is_logged_in();
}
我想在我的另一個控制器檢查用戶在我如何使用記錄這功能我在其他控制器稱爲輪廓和其他
這是我使用CodeIgniter
您的驗證檢查應在庫:
的是從一個基本的codigniter authentcation腳本摘錄:命名後的文件名
class Site_sentry
{
function Site_sentry()
{
$this->obj =& get_instance();
}
function is_logged_in()
{
if ($this->obj->session)
{
if ($this->obj->session->userdata('session_logged_in'))
{
return TRUE;
}
else
{
return FALSE;
}
}
else
{
return FALSE;
}
}
function login_routine()
{
//do login here (enter into session)
}
}
此庫存儲在應用程序/庫它的類與.php後綴。
然後你就可以添加到您的自動加載配置文件應用/ conig/config.php文件:
$autoload['libraries'] = array('database', 'site_sentry', 'session');
或在每個控制器手動加載:
$this->load->library('Site_sentry);
然後你就可以從控制器中檢查您的會話,如下所示:
class Class extends Controller{
function Class()
{
parent::Controller();
if($this->site_sentry->is_logged_in() == FALSE){
redirect('managerlogin/');
}
}
}
另請參閱本文檔頁面http://codeigniter.com/user_guide/libraries/sessions.html;特別感興趣的是將會話存儲到數據庫部分。
我不認爲與類做是最好的主意的第一個項目。如果用戶登錄,您應該檢查session內的標誌(值或其他),因此您不需要與其他控制器一起工作。
優點是可以更容易地訪問會話,這是更常見的方法。
如果有人downvotes,至少說爲什麼... – DrColossos 2010-07-13 07:19:58
實例與會話:
class SomeClass extends Controller {
function __construct()
{
parent::Controller();
$this->is_logged_in();
}
function is_logged_in()
{
$is_logged_in = $this->session->userdata('is_logged_in');
if(!isset($is_logged_in) || $is_logged_in != TRUE)
{
redirect('login');
}
}
非常感謝你 – Saqueib 2010-07-13 10:17:31