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"];
    }