Kamis, 09 Februari 2012

Membuat User Online dengan PHP

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 saya sebelumnya ( PHP Form Register & Login untuk Member), disarankan sebelum anda memulai dengan satu ini supaya membaca tulisan saya sebelumnya agar nanti tidak kesulitan.
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;

sekarang kita buat script PHPnya :
<?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]";
?>
Jadi deh… gampang bukan ???
◄ Newer Post Older Post ►