我想为当前登录的用户创建一个配置文件视图。我创建了一个session_data数组,用于登录时只包含其用户名。如何根据登录的人从行中检索其他值?我是否必须将所有信息添加到session_data数组中?
我的值为 first_name , last_name ,& date_joined 我希望与 用户名 一起显示。
登录控制器:
EF.Property(entity, propertyName
用户视图
class Login extends CI_Controller
{
public function __construct()
{
parent::__construct();
}
public function index()
{
$this->load->view('templates/header');
$this->load->view('login');
$this->load->view('templates/footer');
}
function login_validation()
{
$this->form_validation->set_rules('username', 'Username', 'required');
$this->form_validation->set_rules('password', 'Password', 'required');
if($this->form_validation->run())
{
$username = $this->input->post('username');
$password = $this->input->post('password');
$this->load->model('login_model');
if ($this->login_model->can_login($username, $password))
{
$session_data = array(
'username' => $username
);
$this->session->set_userdata($session_data);
redirect('home');
}
else {
$this->session->set_flashdata('error', 'Invalid Username and Password');
redirect('login');
}
}
else {
$this->index();
}
}
function enter()
{
if ($this->session->userdata('username') != '') {
echo "Welcome " . $this->session->userdata('username');
echo '<a href="/index.php/logout">Logout</a>';
}
else {
redirect('login');
}
}
function logout()
{
$this->session->unset_userdata('username');
redirect('login');
}
}
答案 0 :(得分:0)
您需要在login_model中使用一种方法,该方法会根据您发送给它的用户名检索用户名信息。
这样的事情:
function get_user($username)
{
$this->db->select(*);
$this->db->from('users');
$this->db->where('username', $username);
$query = $this->db->get();
if ($this->db->affected_rows())
{
return $query->row();
}
}
另一方面,我建议您使用现有的身份验证库。 Ion Auth非常好。
祝你好运!