|
Codeigniter ประยุกต์ใช้ Hooks กับการทำ User Online |
Codeigniter ประยุกต์ใช้ Hooks กับการทำ User Online Codeigniter 2.2.6 กับการประยุกต์ใช้ Hooks ในการทำ User Online โดยใช้ MySQL Database
Codeigniter 2.2.6
เริ่มจาก application/config.php
Code
$config['enable_hooks'] = TRUE;
application/hooks.php
Code (PHP)
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
$hook['post_controller'] = array(
'class' => 'User_online',
'function' => 'online',
'filename' => 'User_online.php',
'filepath' => 'hooks',
'params' => ''
);
/*
pre_system ถูกเรียกตั้งแต่แรกเริ่มของการทำงานระบบ
pre_controller ถูกเรียกทันทีก่อนที่ตัวควบคุม (controller) ใดๆจะถูกเรียก
post_controller_constructor ถูกเรียกทันทีเมื่อ constructructor ทำงาน
post_controller ถูกเรียกทันทีเมื่อ controller ทำงานเสร็จสมบรูณ์
*/
/* End of file hooks.php */
/* Location: ./application/config/hooks.php */
application/hooks/hooks.php
Code (PHP)
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
class User_online
{
var $CI;
function __construct()
{
$this->CI = & get_instance();
}
function online()
{
$timeoutseconds = 300;
$timeout = time() - $timeoutseconds;
$this->CI->db->query("DELETE FROM users_online WHERE last_activity < ".$timeout);
$data = $this->CI->session->all_userdata();
if (isset($data['username']))
{
$this->insert_data($data);
}
}
function insert_data($data)
{
$array = array(
'uid' => $data['user_id'] ,
'username' => $data['username'] ,
'ip_address' => $data['ip_address'] ,
'session_id' => $data['session_id'] ,
'user_agent' => $data['user_agent'] ,
'last_activity' => time(),
'uri' => $_SERVER['REQUEST_URI']
);
$count = $this->CI->db->where('uid', $data['user_id'])->from('users_online')->count_all_results();
if ($count === 0)
{
$this->CI->db->insert('users_online', $array);
}
else
{
$this->CI->db->update('users_online', array('last_activity' => time(), 'uri' => $_SERVER['REQUEST_URI']), array('uid' => $data['user_id']));
}
}
}
/* End of file users_online.php */
/* Location: ./application/hooks/user_online.php */
db.sql
Code (PHP)
CREATE TABLE IF NOT EXISTS `users_online` (
`uid` int(11) NOT NULL,
`username` varchar(50) NOT NULL,
`ip_address` varchar(40) NOT NULL,
`session_id` varchar(50) DEFAULT NULL,
`user_agent` varchar(200) DEFAULT NULL,
`last_activity` int(15) NOT NULL,
`uri` varchar(250) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
Reference : http://https://www.thaicreate.com/community/php-codeigniter-hooks-useronline.html
|
|
|
By : |
xMan
|
|
Article : |
บทความเป็นการเขียนโดยสมาชิก หากมีปัญหาเรื่องลิขสิทธิ์ กรุณาแจ้งให้ทาง webmaster ทราบด้วยครับ |
|
Score Rating : |
|
|
Create Date : |
2016-06-02 |
|
Download : |
No files |
|
Sponsored Links |
|
|
|
|