Loading halaman Tutorial Visual Basic, Delphi, PHP - Calon Programer : Membuat PHP User Online ...

Ya… kali ini kita akan bermain dengan session… kita akan membuat satu program untuk mendeteksi berapa user yang online, baik itu yang sudah terdaftar jadi member maupun yang bukan member.
Perlu diketahui tips ini adalah sambungan dari tulisan sebelumnya (PHP Form Register & Login untuk Member), disarankan sebelum anda memulai dengan satu ini supaya membaca tulisan saya sebelumnya agar nanti tidak kesulitan.Nah.. sudah ??? Ok kalau sudah mari kita mulai..
Langkah pertama adalah menyiapkan databasenya
  1. CREATE TABLE dy_sessions ( 
  2. session_id varchar(70) NOT NULL default ''
  3. session_username varchar(40) default NULL
  4. session_usermode varchar(5) default NULL
  5. session_time varchar(40) default NULL
  6. session_visit varchar(40) default NULL
  7. session_address varchar(125) default NULL
  8. session_page varchar(255) default NULL
  9. PRIMARY KEY (session_id) 
  10. ) TYPE=MyISAM; 
sekarang kita buat script PHPnya
  1. <?php 
  2. /* 
  3. MySQL Host, User and Password Access 
  4. Ganti nilainya sesuai dengan konfigurasi di server database kamu 
  5. */ 
  6. $sqlhost="localhost"; //MySQL host 
  7. $sqluser="user"; //MySQL user 
  8. $sqlpasswd="password"; //MySQL password 
  9.  
  10. /* MySQL Database and Table Prefix 
  11. Database ganti dengan nama database kamu 
  12. */ 
  13. $sqldb="stieven"; //database 
  14. $prefix="dy_"; //table prefix 
  15. // Sekarang lakukan Koneksi ke database MySQL 
  16. $conn=mysql_connect("$sqlhost","$sqluser","$sqlpasswd") or die("<p 
  17. align=center>CAN NOT CONNECT TO MYSQL SERVER"); 
  18. mysql_select_db($sqldb) or die("Warning database not exists!"); 
  19. //Global Variable 
  20. /* register global untuk variable terutama jika register_global=off */ 
  21. extract($_SERVER,"EXTR_PREFIX_SAME"); 
  22. extract($HTTP_ENV_VARS,"EXTR_PREFIX_SAME"); 
  23. extract($HTTP_GET_VARS,"EXTR_PREFIX_SAME"); 
  24. extract($HTTP_POST_VARS,"EXTR_PREFIX_SAME"); 
  25. //timezone format 
  26. $gmt=date("Z"); 
  27. //Session Time 
  28. $session_time=date("U"); 
  29. //session ID 
  30. $session_id=session_id(); 
  31. //cek apakah sudah login atau belum 
  32. if (!$HTTP_SESSION_VARS["userakses"]) { 
  33. $session_user="Guest"
  34. $session_mode="-1"
  35. else
  36. $session_user=$HTTP_SESSION_VARS["userakses"]; 
  37. $session_mode=$HTTP_SESSION_VARS["usermode"]; 
  38. //mengambil record lama session dari database 
  39. $sesGet=mysql_query("select * from ". $prefix ."sessions where 
  40. session_id='$session_id'"); 
  41. $session=mysql_fetch_array($sesGet); 
  42. //IP address 
  43. $ipaddress=$REMOTE_ADDR
  44. //update user session jika suda ada dan jika tidak ada bikin baru 
  45. if ($session[session_id]) { 
  46. mysql_query("update ". $prefix ."sessions set 
  47. session_time='$session_time', session_page='". $REQUEST_URI ."' 
  48. ,session_username='$session_user', session_address='$ipaddress' 
  49. ,session_usermode='$session_mode' where session_id='$session_id'"); 
  50. else
  51. mysql_query("insert into ". $prefix ."sessions 
  52. (session_time,session_visit,session_username,session_usermode,session_ 
  53. id,session_address,session_page) 
  54. values('$session_time','$session_time','$session_user','$sessio 
  55. n_mode','$session_id','$ipaddress','". $REQUEST_URI ."')"); 
  56. //Batas Session Time 
  57. $cekSess=$session_time-300; 
  58. //Total Semua yang online 
  59. $sesGets=mysql_query("select count(*) from ". $prefix ."sessions where 
  60. session_time>='$cekSess'"); 
  61. $session_crt=mysql_fetch_row($sesGets); 
  62. //Total online non member 
  63. $sesGetss=mysql_query("select count(*) from ". $prefix ."sessions where 
  64. session_time>='$cekSess' and session_usermode<=0"); 
  65. $session_crts=mysql_fetch_row($sesGetss); 
  66. //Total Online Member 
  67. $sesGetsss=mysql_query("select count(*) from ". $prefix ."sessions where 
  68. session_time>='$cekSess' and session_usermode>=1"); 
  69. $session_crtss=mysql_fetch_row($sesGetsss); 
  70. //Hapus session yang sudak ekspire 
  71. mysql_query("delete from ". $prefix ."sessions where 
  72. session_time<'$cekSess'"); 
  73. echo "Online $session_crt[0] : Member $session_crtss[0] - Non Member 
  74. $session_crts[0]"
  75. ?> 
Jadi deh… gampang bukan ???

PHP User Online
Stieven R. Kalengkian stieven@kawanuanetworks.com
http://www.php.wox.org

Tagg :

0 Reply :

Posting Komentar

Jika ada pertanyaan atau request,Komentar pada tab blogger akan lebih memudahkan saya untuk membalasnya karena lebih mudah melakukan pengecekan komentar.