1
Я новичок в codeigniter, я сделал страницу входа, но она не работает. Мне нужен код, используя сеанс. Мне нужно поставить session_start(); в каждом контроллере или есть способ в кодеригнере, чтобы он автоматически включался во все контроллеры? (должен ли я это сделать?).login in codeigniter error
function __construct() // controller
{
parent::__construct();
$this->load->library('session');
$this->load->database();
$this->load->helper('url');
$this->load->library('form_validation');
$this->load->helper('form');
$this->load->model('np_login_model');
}
public function index()
{
$this->load->view('admin/login/login_dashboard');
}
// Check for user login process
public function user_login_process()
{
$this->form_validation->set_rules('username', 'Username', 'trim|required|xss_clean');
$this->form_validation->set_rules('password', 'Password', 'trim|required|xss_clean');
if ($this->form_validation->run() == FALSE)
{
if(isset($this->session->userdata['logged_in']))
{
$this->load->view('admin/intropage');
}
else
{
$this->load->view('admin/login/login_dashboard');
}
}
else
{
$data = array('username' => $this->input->post('username'),'password' => $this->input->post('password'));
$result = $this->np_login_model->login($data);
if ($result == TRUE)
{
$username = $this->input->post('username');
$result = $this->np_login_model->read_user_information($username);
if ($result != false)
{
$session_data = array('username' => $result[0]->user_name);
// Add user data in session
$this->session->set_userdata('logged_in', $session_data);
$this->load->view('admin/intropage');
}
}
else
{
$data = array('error_message' => 'Invalid Username or Password');
$this->load->view('admin/login/login_dashboard', $data);
}
}
}
модель
public function login($data)
{
$condition = "user_name =" . "'" . $data['username'] . "' AND " . "user_password =" . "'" . $data['password'] . "'";
$this->db->select('*');
$this->db->from('np_login');
$this->db->where($condition);
$this->db->limit(1);
$query = $this->db->get();
if ($query->num_rows() == 1)
{
return true;
}
else
{
return false;
}
}
// Read data from database to show data in admin page
public function read_user_information($username) {
$condition = "user_name =" . "'" . $username . "'";
$this->db->select('*');
$this->db->from('np_login');
$this->db->where($condition);
$this->db->limit(1);
$query = $this->db->get();
if ($query->num_rows() == 1) {
return $query->result();
} else {
return false;
}
}
Вам не нужно ставить session_start(); в каждом контроллере. Загрузка библиотеки сеансов достаточно. $ This-> load-> библиотека ('сессии'); – Ima
Это еще один случай, когда руководство пользователя открывается и проверяет все шаг за шагом, то есть debug ... – TimBrownlaw
Мне удалось исправить проблему, но возникла другая проблема, т. Е. Когда я использую '=', так как мое имя пользователя и пароль напрямую входит в админ-панель без какой-либо проверки. как использовать mysql real escape string –