Beranda · Tips Trick · Film · Lagu · PHP · Tutorial Umum · jQuery · Otomotive

PHP - Script Untuk Melihat User Online

Jika anda sedang mendevelope web aplikasi tentu anda ingin tahu berapa yang online di web anda.
Berikut saya kasih tutorial Script Untuk Melihat User Online

Creating table

Pertama membuat database dan tabel
  1. CREATE TABLE `online_users` (
  2. `session_id` CHAR(150) NOT NULL,
  3. `last_activity` INT(11) NOT NULL DEFAULT '0'
  4. );

Creating php file

Langkah selanjutnya ialah membuat dan menggunakan 'SA_USERSONLINE' Class!
SA_USERSONLINE class:
  1. <?php 
    /*
  2.  * Author : D
  3.  * Website: http://database.net
  4.  */
  5. class SA_USERSONLINE
  6. {
  7. protected $DB_HOST = DB_HOST;
  8. protected $DB_NAME = DB_NAME;
  9. protected $DB_USER = DB_USER;
  10. protected $DB_PWD = DB_PWD;
  11. protected $session_id = null;
  12. protected $time = null;
  13. protected $timeout = 15;
  14. protected $link = null;
  15. protected $stmt = null;
  16. function __construct ()
  17. {
  18. $this->session_id = session_id();
  19. $this->time = time();
  20. $this->link = mysqli_connect($this->DB_HOST, $this->DB_USER,
  21. $this->DB_PWD, $this->DB_NAME);
  22. }
  23.  
  24. /**
  25.   * Gets current online users
  26.   */
  27. function get_online_users ()
  28. {
  29. $this->delete_update_onlineusers();
  30. $this->insert_onlineusers();
  31. $this->stmt = mysqli_query($this->link,
  32. 'SELECT session_id FROM online_users');
  33. return mysqli_num_rows($this->stmt);
  34. }
  35.  
  36. private function already_registred ()
  37. {
  38. $this->stmt = mysqli_query($this->link,
  39. "SELECT session_id FROM online_users WHERE session_id='$this->session_id'");
  40. if (! $this->stmt || mysqli_num_rows($this->stmt) <= 0)
  41. return false;
  42. return true;
  43. }
  44.  
  45. private function insert_onlineusers ()
  46. {
  47. if (! $this->already_registred()) {
  48. mysqli_query($this->link,
  49. "INSERT INTO online_users VALUES('$this->session_id',$this->time)");
  50. }
  51. }
  52.  
  53. private function delete_update_onlineusers ()
  54. {
  55. $timeout = $this->time - ($this->timeout * 60);
  56. mysqli_query($this->link,
  57. "DELETE FROM online_users WHERE last_activity<=$timeout");
  58. mysqli_query($this->link,
  59. "UPDATE online_users SET last_activity=$this->time WHERE session_id='$this->session_id'");
  60. }
  61.  
  62. /**
  63.   * Set timeout in minutes.
  64.   *
  65.   * @param int $timeout
  66.   */
  67. function set_timeout ($timeout)
  68. {
  69. $this->timeout = ((int) $timeout);
  70. }
  71. }
  72.  
  73. ?>
Example usage:
  1. $usersOnline = new SA_USERSONLINE();
  2. echo 'Online users: ', $usersOnline->get_online_users();
Juga, anda bisa customize session timeout(dalam menit):
$usersOnline->set_timeout(15);


Selamat mencoba..

Artikel keren lainnya:

Belum ada tanggapan untuk "PHP - Script Untuk Melihat User Online"

Post a Comment