Php 使用Codeigniter跟踪在线用户数(v2)
我正在使用Codeigniter 2,并希望将站点上当前用户的数量跟踪到数据库中。我知道这可以通过使用内置会话类来实现,但我不确定我做错了什么-我在MySQL中创建了ci_sessions表,并在配置中设置了以下内容-当有人访问该站点时,我是否需要对自动将会话记录到数据库中进行任何其他调整Php 使用Codeigniter跟踪在线用户数(v2),php,codeigniter,session,frameworks,tracking,Php,Codeigniter,Session,Frameworks,Tracking,我正在使用Codeigniter 2,并希望将站点上当前用户的数量跟踪到数据库中。我知道这可以通过使用内置会话类来实现,但我不确定我做错了什么-我在MySQL中创建了ci_sessions表,并在配置中设置了以下内容-当有人访问该站点时,我是否需要对自动将会话记录到数据库中进行任何其他调整 $config['sess_cookie_name'] = 'ci_session'; $config['sess_expiration'] = 7200; $config['sess_en
$config['sess_cookie_name'] = 'ci_session';
$config['sess_expiration'] = 7200;
$config['sess_encrypt_cookie'] = FALSE;
$config['sess_use_database'] = TRUE;
$config['sess_table_name'] = 'ci_sessions';
$config['sess_match_ip'] = FALSE;
$config['sess_match_useragent'] = TRUE;
$config['sess_time_to_update'] = 300;
型号
class online_users_mod extends CI_Model
{
function __construct(){
parent::__construct();
}
//getting all session data
function get_all_session_data(){
$query=$this->db->select('user_data')->get('ci_sessions');
return $query;
}
}
控制器
class online_users_lib extends CI_Controller{
//put your code here
/**
* CodeIgniter global
*
* @var string
**/
protected $ci;
public function __construct() {
$this->ci =& get_instance();
$this->ci->load->model('online_users_mod');
}
//getting all online session data
function get_all_session_data(){
$query=$this->ci->online_users_mod->get_all_session_data();
$user = array();
/* array to store the user data we fetch */
$j=0;$k=0;
foreach ($query->result() as $row)
{
$udata = unserialize($row->user_data);
/* put data in array using username as key */
if(isset($udata['yourlogin_data']))
{
if($udata['yourlogin_data']['User_cat']==2)
{
$user[$j]['yourlogin_data'] = $udata['yourlogin_data'];
$j++;
}
}
}
return $user ;
}
}
型号
class online_users_mod extends CI_Model
{
function __construct(){
parent::__construct();
}
//getting all session data
function get_all_session_data(){
$query=$this->db->select('user_data')->get('ci_sessions');
return $query;
}
}
控制器
class online_users_lib extends CI_Controller{
//put your code here
/**
* CodeIgniter global
*
* @var string
**/
protected $ci;
public function __construct() {
$this->ci =& get_instance();
$this->ci->load->model('online_users_mod');
}
//getting all online session data
function get_all_session_data(){
$query=$this->ci->online_users_mod->get_all_session_data();
$user = array();
/* array to store the user data we fetch */
$j=0;$k=0;
foreach ($query->result() as $row)
{
$udata = unserialize($row->user_data);
/* put data in array using username as key */
if(isset($udata['yourlogin_data']))
{
if($udata['yourlogin_data']['User_cat']==2)
{
$user[$j]['yourlogin_data'] = $udata['yourlogin_data'];
$j++;
}
}
}
return $user ;
}
}
如果我正确理解你的问题,我想这个帖子可以帮助你我明白这不是你问的,但你应该检查谷歌分析的实时测试版。工作正常,不会增加您的开销。您当前的会话设置中到底有什么不起作用?啊哈。。我没想过GA实时——听起来很理想:)@Colin——它似乎没有写入数据库?或者我需要为此做一些自定义控制器/逻辑吗?谢谢如果我正确理解你的问题,我想这个帖子可以帮助你我明白这不是你问的,但你应该检查谷歌分析的实时测试版。工作正常,不会增加您的开销。您当前的会话设置中到底有什么不起作用?啊哈。。我没想过GA实时——听起来很理想:)@Colin——它似乎没有写入数据库?或者我需要为此做一些自定义控制器/逻辑吗?谢谢