[英]How to use global variable in PHP Codeigniter
我在MVC應用程序中實現了登錄邏輯; 我想看看用戶是否填寫了用戶名並錯誤地傳遞了passowrd,如果是,我想在視圖中顯示一個通知; 所以我通過$ data ['er']傳遞這些信息; 但由於某種原因,它沒有捕獲這些數據:
如果我的問題是否清楚,請告訴我; 如果需要澄清,請告訴我哪個部分含糊不清
我的代碼:
class Login extends CI_Controller {
public function __construct() {
parent::__construct();
$GLOBALS['er'] = False;
}
public function index() {
$data['er']=$GLOBALS['er'];
$data['main_content'] = 'login_form';
$this->load->view('includes/template', $data);
}
public function validate_credentials() {
$this->load->model('user_model');
$query = $this->user_model->validate();
if ($query) {
$data = array(
'username' => $this->input->post('username'),
);
$this->session->set_userdata($data);
redirect('project/members_area');
} else {
$GLOBALS['er'] = TRUE;
$this->index();
}
}
}
不要使用GLOBALS
你可以在你的類中使用私有變量。
private $er
創建__construct
函數上方的變量 __contruct
函數中設置默認值 $this->er
設置並進入您的公共函數 在您的代碼中實現:
class Login extends CI_Controller {
private $er;
public function __construct() {
parent::__construct();
$this->er = FALSE;
}
public function index() {
$data['er']= $this->er;
$data['main_content'] = 'login_form';
$this->load->view('includes/template', $data);
}
public function validate_credentials() {
$this->load->model('user_model');
$query = $this->user_model->validate();
if ($query) {
$data = array(
'username' => $this->input->post('username'),
);
$this->session->set_userdata($data);
redirect('pmpBulletin/members_area');
//die(here);
} else {
$this->er = TRUE;
$this->index();
}
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.