如何获得codeigniter会话数据库blob值?

时间:2017-05-16 11:28:03

标签: codeigniter session blob

使用Codeigniter session
我创建了 ci_session 表 在此表中,我在session数据类型中保存blob个数据。

$sess_data= array(
        'logged_in' => TRUE
);
$this->session->set_userdata($sess_data);

为了统计所有在线用户,我需要在logged_in==1数据类型中获得blob值。

例如,使用Chrome网络浏览器登录user 1User2已使用Mozilla登录。在database中,有2个会话具有不同的会话ID。

如何在此logged_in==1中获取所有 ci_session table值?


这是我的模特功能。
请帮我填写这个功能的哪个地方?

public function count_online_users(){
$this->db->select('*');
$this->db->from('ci_session');
$this->db->where(...........);
$query = $this->db->get()->num_rows();
return $query;
}

1 个答案:

答案 0 :(得分:0)

  

检查此方法您必须遵循

首先,您必须将logged_in = 1表中的users更新为您定义的名称

获得用户数后,

logged_in

// Update user in to call this function 
$data = array(
                 'logged_in' => '1'
             );
public function update_user($user_id, $data)
{
    $this->db->where('id',$user_id);
    $this->db->update('users',$data);
}

// After you get logged in user in total value
public function count_online_users()
{
    $this->db->select('*');
    $this->db->from('users');
    $this->db->where('logged_in','1');
    $query = $this->db->get()->num_rows();
    return $query;
}

您可以对更新字段使用javascript和asynchron请求。关闭窗口时,会调用window.onunload的处理程序

var unloadHandler = function(e){
    //here ajax request to close session
};
window.unload = unloadHandler;

要解决重定向问题,php方面你可以使用计数器

class someController  extends Controller {
    public function methodWithRedirection(){
        $this->session->set_userdata('isRedirection', 1);
        //here you can redirect  
    }
}
class homeController extends Controller{
    public function closeConnection(){
        $this->load->library('session');
        if($this->session->userdata('isRedirection')!== 1){
            //destroy session
        }
    }
}