检索会话数据Codeigniter

时间:2012-01-10 18:35:08

标签: mysql codeigniter

我正在开发一个消息传递系统,并希望将用户的userid与消息一起发布到数据库中。现在,邮件正在发布到数据库,但用户ID为0.

如何从会话数据中获取用户ID以及消息一起发布到数据库?旁注:我正在使用Tank Auth进行身份验证。 (从mysql方面来说,消息表中的user_id是users表中引用id的外键)。

控制器

function index() {

    if ($this->input->post('submit')) {
            $id = $this->input->post('user_id');
            $message = $this->input->post('message');

            $this->load->model('message_model');
            $this->message_model->addPost($id, $message);
        }
    }   

模型

function addMessage($id, $message) {
        $data = array(
            'user_id' => $id,
            'message' => $message
        );

        $this->db->insert('message', $data);
    }

2 个答案:

答案 0 :(得分:1)

对于tank_auth,使用以下内容获取user_id,然后将其分配给您的会话

$user_id    = $this->tank_auth->get_user_id();

答案 1 :(得分:0)

直接来自CI's documentation

  

检索会话数据

     

会话数组中的任何信息都可以使用   以下功能:

$this->session->userdata('item');
     

其中item是数组索引   对应于您要获取的项目。例如,要获取   您将执行会话ID:

$session_id = $this->session->userdata('session_id');
     

注意:   如果您要访问的项目,函数返回FALSE(布尔值)   不存在。

因此,如果您有一段名为user_id的会话数据,您可以像这样访问它:

$user_id = $this->session->userdata('user_id');