【发布时间】:2017-10-08 23:34:37
【问题描述】:
我正在开发一个 Codeigniter 3 身份验证应用程序。我是 CI 新手,所以我遇到了这个基本问题:无法从会话中存储/输出变量(我需要他来显示 已登录用户的数据)。
用户模型:
class Usermodel extends CI_Model {
public function user_login($email, $password)
{
$query = $this->db->get_where('users', array('email' => $email, 'password' => $password));
return $query->row();
}
}
登录控制器如下所示:
class Signin extends CI_Controller {
public function __construct()
{
parent::__construct();
}
public function index()
{
$this->load->view('signin');
}
public function signin()
{
$this->form_validation->set_rules('email', 'Email', 'required|trim|valid_email');
$this->form_validation->set_rules('password', 'Password', 'required');
$this->form_validation->set_error_delimiters('<p class="error">', '</p>');
if ($this->form_validation->run())
{
$email = $this->input->post('email');
$password = $this->input->post('password');
$this->load->model('Usermodel');
$current_user = $this->Usermodel->user_login($email, $password);
if ($current_user) {
$current_user_id = $this->session->set_userdata('user_id', $current_user->id);
$current_user_email = $this->session->set_userdata('email', $current_user->email);
// Echo from database
echo $current_user->id . " | " . $current_user->email;
//Echo from session
echo $current_user_id . " | " . $current_user_email;
} else {
redirect('signin');
}
}
else
{
$this->load->view('signin');
}
}
}
我能够在控制器中使用echo $current_user->id . " | " . $current_user->email; 这一行从数据库中打印出登录的用户ID 和电子邮件地址。浏览器显示:1 | razvan_zamfir80@yahoo.com。
但我不能在会话中做同样的事情:echo $current_user_id . " | " . $current_user_email; 什么也不输出。
我的错误在哪里?谢谢!
【问题讨论】:
标签: php codeigniter session