我正在使用 CodeIgniter。但是,当我使用会话时,出现了问题。问题是:我尝试将 user_email 存储在会话中。然后我重定向到另一个控制器。在这种情况下,它可以完美运行。但是,当我向数据库添加一个新用户时,我尝试登录、存储会话并重定向到另一个控制器,会话丢失。任何人都可以帮助解决我的问题?提前致谢
这是代码:
控制器1
public function make_session($parameter)
{
$this->session->set_userdata('user', $parameter );
}
// Fungsi untuk menggenerate page login
public function do_login()
{
// Memanggil page untuk proccess login
// grab user input
$email = $this->input->post('user_email');
$password = $this->input->post('user_password');
// Menyimpan variable first name
$this->load->model('login_model');
$data['user'] = $this->login_model->get_user( $email, $password );
// Set session daripada user
if( $data['user'] != NULL )
{
foreach ($data['user'] as $ad):
$this->make_session( $ad['user_email'] );
endforeach;
}
$this->index();
}
控制器2
public function index(){
$data['session_u_email'] = $this->session->userdata('user');
$this->load->model('main_model');
// Mendapatkan nama dari si user
$data['fname'] = $this->main_model->get_user_fname( $data['session_u_email'] );
// Mendapatkan role dari user
$data['role_id'] = $this->main_model->get_role_id( $data['session_u_email'] );
// Mendapatkan user id dahulu
$this->load->model('input_model');
$id = $this->input_model->get_user_id( $data['session_u_email'] );
// Setelah dapat id, nendapatkan jumlah input dari si user
$data['input_number'] = $this->main_model->get_input_number( $id );
//Mendapatkan total agen
$data['tot'] = $this->main_model->get_total_agen();
$data['date'] = date("F j, Y, g:i a");
$this->load->view('template/header', $data);
$this->load->view('main_v', $data);
$this->load->view('template/footer');
}
模型
public function get_user($u_email, $u_password)
{
// Prep the query
$this->db->where('user_email', $u_email);
$this->db->where('user_password', sha1($u_password));
// Run the query
$query = $this->db->get('user');
if($query->num_rows() == 1)
{
$query->result_array();
}
}