Я реализовал логику входа в приложение 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(); } } }