Как использовать глобальную переменную в PHP Codeigniter

Я реализовал логику входа в приложение MVC; Я хочу узнать, правильно ли пользователь набрал имя пользователя и passowrd, и если это так, я хочу показать notifictaion в представлении; поэтому я передаю эту информацию через $ 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 вы можете просто использовать закрытую переменную в своем классе.

  • Создайте переменную выше вашей функции __construct например private $er
  • В вашей функции __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(); } } }