0

我正在尝试设置 2 个会话:

$this->session->set_userdata('name', 'value');

但是我只能设置一个。我有:

$this->session->set_userdata('logged_in', TRUE);
$this->session->set_userdata('user_id', $user['id']);

第一个有效,但第二个从未设置。

有谁能够帮助我?

谢谢!

PS:我是葡萄牙人,我可能有一些语法错误。对此感到抱歉。

4

4 回答 4

2

$this->session->set_userdata(array('logged_in' => TRUE, 'user_id'=> $user['id']));

于 2012-12-31T09:25:07.203 回答
2

在您的情况下,$user不是数组,而是对象:

$this->session->set_userdata('user_id', $user->id);
于 2012-12-31T09:36:23.163 回答
1

如果$user = $query->row_array()

$this->session->set_userdata('logged_in', TRUE);
$this->session->set_userdata('user_id', $user['id']);

如果$user = $query->row()

$this->session->set_userdata('logged_in', TRUE);
$this->session->set_userdata('user_id', $user->id);

http://ellislab.com/codeigniter/user-guide/database/results.html

如果它仍然不起作用,试试这个:

    $this->db->where('email',$email);
    $this->db->where('password',$password);
    $query = $this->db->get('users');
    return $query->row();

* *我的英语不好。

于 2012-12-31T09:16:23.093 回答
1

您没有正确使用该功能。

来自CI 手册

$this->session->set_userdata('logged_in', TRUE);
$this->session->set_userdata('user_id', $user->id);

这就是您设置所有会话数据的方式。

请注意,这$user会产生一个对象而不是数组。所以你的访问是错误的。否则,您可以使用上述row_array()功能和访问权限

于 2012-12-31T09:32:31.890 回答