gpt4 book ai didi

php - 向数据库添加一个用户后 CodeIgniter session 丢失

转载 作者:行者123 更新时间:2023-11-30 23:13:14 24 4
gpt4 key购买 nike

我正在使用 CodeIgniter。但是,当我使用 session 时,出现了问题。问题是:我尝试将 user_email 存储在 session 中。然后我重定向到另一个 Controller 。在这种情况下,它工作得很好。但是,当我向数据库添加一个新用户时,我尝试登录、存储 session 并重定向到另一个 Controller , session 丢失了。任何人都可以帮助解决我的问题吗?提前致谢

代码如下:

Controller 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();
}

Controller 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();
}
}

最佳答案

您的模型根本不返回任何内容 - 这与返回 null 相同,这会导致不创建 session ,因为永远找不到用户。

因此,您应该同样向您的模型添加一个返回:

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)
{
return $query->result_array();
}
}

关于php - 向数据库添加一个用户后 CodeIgniter session 丢失,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19015078/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com