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
sekarang kita buat script PHPnya
Jadi deh… gampang bukan ???
PHP User Online
Stieven R. Kalengkian stieven@kawanuanetworks.com
http://www.php.wox.org
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
- CREATE TABLE dy_sessions (
- session_id varchar(70) NOT NULL default '',
- session_username varchar(40) default NULL,
- session_usermode varchar(5) default NULL,
- session_time varchar(40) default NULL,
- session_visit varchar(40) default NULL,
- session_address varchar(125) default NULL,
- session_page varchar(255) default NULL,
- PRIMARY KEY (session_id)
- ) TYPE=MyISAM;
- <?php
- /*
- MySQL Host, User and Password Access
- Ganti nilainya sesuai dengan konfigurasi di server database kamu
- */
- $sqlhost="localhost"; //MySQL host
- $sqluser="user"; //MySQL user
- $sqlpasswd="password"; //MySQL password
- /* MySQL Database and Table Prefix
- Database ganti dengan nama database kamu
- */
- $sqldb="stieven"; //database
- $prefix="dy_"; //table prefix
- // Sekarang lakukan Koneksi ke database MySQL
- $conn=mysql_connect("$sqlhost","$sqluser","$sqlpasswd") or die("<p
- align=center>CAN NOT CONNECT TO MYSQL SERVER");
- mysql_select_db($sqldb) or die("Warning database not exists!");
- //Global Variable
- /* register global untuk variable terutama jika register_global=off */
- extract($_SERVER,"EXTR_PREFIX_SAME");
- extract($HTTP_ENV_VARS,"EXTR_PREFIX_SAME");
- extract($HTTP_GET_VARS,"EXTR_PREFIX_SAME");
- extract($HTTP_POST_VARS,"EXTR_PREFIX_SAME");
- //timezone format
- $gmt=date("Z");
- //Session Time
- $session_time=date("U");
- //session ID
- $session_id=session_id();
- //cek apakah sudah login atau belum
- if (!$HTTP_SESSION_VARS["userakses"]) {
- $session_user="Guest";
- $session_mode="-1";
- }
- else {
- $session_user=$HTTP_SESSION_VARS["userakses"];
- $session_mode=$HTTP_SESSION_VARS["usermode"];
- }
- //mengambil record lama session dari database
- $sesGet=mysql_query("select * from ". $prefix ."sessions where
- session_id='$session_id'");
- $session=mysql_fetch_array($sesGet);
- //IP address
- $ipaddress=$REMOTE_ADDR;
- //update user session jika suda ada dan jika tidak ada bikin baru
- if ($session[session_id]) {
- mysql_query("update ". $prefix ."sessions set
- session_time='$session_time', session_page='". $REQUEST_URI ."'
- ,session_username='$session_user', session_address='$ipaddress'
- ,session_usermode='$session_mode' where session_id='$session_id'");
- }
- else {
- mysql_query("insert into ". $prefix ."sessions
- (session_time,session_visit,session_username,session_usermode,session_
- id,session_address,session_page)
- values('$session_time','$session_time','$session_user','$sessio
- n_mode','$session_id','$ipaddress','". $REQUEST_URI ."')");
- }
- //Batas Session Time
- $cekSess=$session_time-300;
- //Total Semua yang online
- $sesGets=mysql_query("select count(*) from ". $prefix ."sessions where
- session_time>='$cekSess'");
- $session_crt=mysql_fetch_row($sesGets);
- //Total online non member
- $sesGetss=mysql_query("select count(*) from ". $prefix ."sessions where
- session_time>='$cekSess' and session_usermode<=0");
- $session_crts=mysql_fetch_row($sesGetss);
- //Total Online Member
- $sesGetsss=mysql_query("select count(*) from ". $prefix ."sessions where
- session_time>='$cekSess' and session_usermode>=1");
- $session_crtss=mysql_fetch_row($sesGetsss);
- //Hapus session yang sudak ekspire
- mysql_query("delete from ". $prefix ."sessions where
- session_time<'$cekSess'");
- echo "Online $session_crt[0] : Member $session_crtss[0] - Non Member
- $session_crts[0]";
- ?>
PHP User Online
Stieven R. Kalengkian stieven@kawanuanetworks.com
http://www.php.wox.org
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.