我正在尝试自己构建一个带有会话的登录系统作为练习,但我遇到了一个我似乎无法解决的问题。
当用户登录我的测试网站时,我想从数据库中获取他的一些数据(如姓氏和电子邮件)并将其放入他的会话中。在此之前,我使用了 return true 或 false 方法并在会话中添加了一个服装条目,但现在我想添加额外的东西,我可以在其他页面上轻松访问,如用户名/电子邮件等。
我尝试了将数据从模型传递到控制器的 diff 方法,但我似乎找不到在控制器本身内部使用信息数组的方法。
我当前的代码如下所示:
这是模型
$username = $this->input->post('username');
$password = md5($this->input->post('password'));
$query = $this->db->query("SELECT * FROM users WHERE username = '$username' AND password = '$password' LIMIT 1");
if($query->num_rows() > 0)
{
foreach ($query->result() as $row)
{
$data[]['id'] = $row->id;
$data[]['name'] = $row->name;
$data[]['surname'] = $row->surname;
$data[]['username'] = $row->username;
$data[]['email'] = $row->email;
$data[]['premission_level'] = $row->premission_level;
$data[]['disabled'] = $row->disabled;
}
}
return $data;
}
获取数据后,它会转到此控制器:
public function clogin()
{
$this->load->model('M_login');
$query = $this->M_login->mlogin();
if($query == TRUE)
{
$data['product'] = $this->M_login->get_user_info();
$session_data = array(
'username' => $this->input->post('username'),
'is_logged_in' => TRUE
);
$this->session->set_userdata($session_data);
echo '<pre>';
print_r($data);
}
}
在此之后,我迷失了如何从数组中获取信息。数组成功传递,因为我可以使用 print_r 查看里面的内容。
PS:数组中的当前字段是用户名/姓名/姓氏/电子邮件/禁用。
先感谢您。
编辑:这就是我的数组的样子:
Array
( [0] => 数组
(
[id] => 1
[name] => war
[surname] => howl
[username] => warhowl
[email] => someone@none.com
[premission_level] => 1
[disabled] => 0
)
)