Engine guest online dengan PHP tanpa menggunakan database.

Di dalam website ber-tipe komersil, biasanya sering dicantumkan informasi tentang member online ataupun guest online. Mungkin terlihat sepele, tapi ternyata hal kecil seperti itu dapat mendongkrak popularitas website tersebut. Semakin banyak jumlah member / guest yg online, maka akan semakin bagus.

Banyak cara yg dapat digunakan untuk membuat engine ini, umumnya selalu menggunakan database sehingga lebih mudah untuk mengontrolnya. Cara lain dapat menggunakan suatu text file, berupa .txt, .xml atau yg lainnya. Nah disini, ane akan membahas bagaimana membuat engine tersebut menggunakan text file .txt, berikut contoh scriptnya.........

//Definisi variabel
$visitor = $_SERVER['REMOTE_ADDR'];
$time = time();
$flag = $jmlguest = 0;

//Script ini untuk mengecek, apakah ID guest sudah ada apa belum
$fp=fopen("guest_online.txt","a+");
$baca = explode("\n",fread($fp,filesize('guest_online.txt')+1));
foreach($baca as $list_guest)
{
    $guest = explode(",",$list_guest);
    if(eregi($visitor,$guest[0])) $flag=1;
}

//Jika ID guest belum ada, maka ID guest tersebut akan di catat.
if($flag==0) fwrite($fp,$visitor.",".$time."\n");
fclose($fp);


//Script ini untuk menghapus ID guest yg sudah tidak online lagi.
$filearray = file ('guest_online.txt');
$newarray = array();
foreach ($filearray as $list_guest )
{
    $guest = explode(",",$list_guest);
    //$time-300, maksudnya waktu sekarang dikurang 300 detik sebelumnya, ini bisa disesuaikan kebutuhan.
    if(!eregi($visitor,$guest[0]) && ($guest[1] > ($time-300)))
    {
        $jmlguest++;
        array_push($newarray,$guest[0].",".$guest[1]);
    }
}


//ini untuk memperbaharui timestamp dari ID guest yg bersangkutan
$jmlguest++;
array_push($newarray,$visitor.",".$time."\n");


$string = implode ("",$newarray);
$fp = fopen ( 'guest_online.txt', 'w' );
fwrite ( $fp , $string );
fclose ( $fp );

//disini tinggal anda cetak jumlahnya.
echo $jmlguest." guest online";

Setelah script itu dijalankan dengan benar, maka berapa jumlah guest yg online dapat langsung diketahui, mudah bukan ?? jadi kita tidak perlu membebani database untuk hal2 sederhana semacam ini, untuk contohnya bisa buka www.propertiproperti.com dan klo ada masukkan, ane selalu open.............

2 komentar:

  1. guest nya kok gak keliatan berapa yang online mas? masak gak ada contohnya?
    sesekalia cek blog saya ya. thanks

    BalasHapus
  2. @Awan -> contohnya bisa dilihat di www.propertiproperti.com. Blog ente bagus juga, kebetulan ane punya anak kecil, bisa jadi panduan untuk mengajarkannya menggambar. Salam kenal y....

    BalasHapus