PHP - Users Online Script
Submitted by softafzar.net on Tuesday, January 14, 2014 - 17:20.
Language
Hello, if you are developing a web application, you may need this online users script to show how many users is online.
Yesterday i wrote a php class for it and decide to share it.
Example usage:
Also, You can customize session timeout(in minutes):
Original tutorial here : http://softafzar.net/thread1717.html .
Creating table
Well, Before using this class, you must create a table in your database:- CREATE TABLE `online_users` (
- `session_id` CHAR(150) NOT NULL,
- `last_activity` INT(11) NOT NULL DEFAULT '0'
- );
Creating php file
Next step is create and using 'SA_USERSONLINE' Class! SA_USERSONLINE class:- <?php
- /*
- * Author : Reza Ramezanpour <[email protected]>
- * Website: http://softafzar.net
- */
- class SA_USERSONLINE
- {
- protected $DB_HOST = DB_HOST;
- protected $DB_NAME = DB_NAME;
- protected $DB_USER = DB_USER;
- protected $DB_PWD = DB_PWD;
- protected $session_id = null;
- protected $time = null;
- protected $timeout = 15;
- protected $link = null;
- protected $stmt = null;
- function __construct ()
- {
- $this->DB_PWD, $this->DB_NAME);
- }
- /**
- * Gets current online users
- */
- function get_online_users ()
- {
- $this->delete_update_onlineusers();
- $this->insert_onlineusers();
- 'SELECT session_id FROM online_users');
- }
- private function already_registred ()
- {
- "SELECT session_id FROM online_users WHERE session_id='$this->session_id'");
- return false;
- return true;
- }
- private function insert_onlineusers ()
- {
- if (! $this->already_registred()) {
- "INSERT INTO online_users VALUES('$this->session_id',$this->time)");
- }
- }
- private function delete_update_onlineusers ()
- {
- "DELETE FROM online_users WHERE last_activity<=$timeout");
- "UPDATE online_users SET last_activity=$this->time WHERE session_id='$this->session_id'");
- }
- /**
- * Set timeout in minutes.
- *
- * @param int $timeout
- */
- function set_timeout ($timeout)
- {
- $this->timeout = ((int) $timeout);
- }
- }
- ?>
- $usersOnline = new SA_USERSONLINE();
- echo 'Online users: ', $usersOnline->get_online_users();
$usersOnline->set_timeout(15);
NOTE: If database connection is already established, You should remove lines 34 and 35:
- $this->DB_PWD, $this->DB_NAME);
Note: Due to the size or complexity of this submission, the author has submitted it as a .zip file to shorten your download time. After downloading it, you will need a program like Winzip to decompress it.
Virus note: All files are scanned once-a-day by SourceCodester.com for viruses, but new viruses come out every day, so no prevention program can catch 100% of them.
FOR YOUR OWN SAFETY, PLEASE:
1. Re-scan downloaded files using your personal virus checker before using it.
2. NEVER, EVER run compiled files (.exe's, .ocx's, .dll's etc.)--only run source code.
Comments
Add new comment
- Add new comment
- 588 views