簡體   English   中英

如何在PHP Codeigniter中使用全局變量

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM