Check users online, user last activity, user last ip

DbHttpSession

Stores session data in database and transfer data when session is destroy. Uses for check users online, user's last activity and last ip.

Instructions

1) Download the component from github https://github.com/frazelli/DbHttpSession and move to protected/components

2) Add this code to component section in config/main.php

'session' => array (
  'class' => 'application.components.DbHttpSession',
  'connectionID' => 'db',
  'sessionTableName' => 'session',
  'userTableName' => 'user'
),

Session table will be created automatically

Your user table must have needed columns. Add this if you have not:
ALTER TABLE user ADD user_id INT(11) NOT NULL, ADD last_ip VARCHAR(100) NOT NULL, ADD last_activity DATETIME NOT NULL
For Example:

Add this method to User model for check users online

public static function getOnlineUsers()
    {
        $sql = "SELECT session.user_id, user.name FROM session LEFT JOIN user ON user.id=session.user_id";
        $command = Yii::app()->db->createCommand($sql);
        
        return $command->queryAll();
    }

In view

foreach (User::getOnlineUsers() as $user) {
        echo $user["name"];
    }
3 0
7 followers
Viewed: 12 516 times
Version: 1.1
Category: How-tos
Written by: frazelli
Last updated by: frazelli
Created on: Sep 18, 2014
Last updated: 3 years ago
Update Article

Revisions

View all history

Related Articles