akupasrah
12-05-2008, 03:43 PM
Mungkin kita sering lihat di beberapa web ada tulisan "2 user online"
Nach, skarang gw coba bagi2 caranya :
buat file kosong di notepad dan simpan dengan nama online.txt
masukkan script php berikut di mana kita akan menaruh user online tersebut. Nich scriptnya :
<?php
function online_users()
{
$log_file = "online.txt";
$min_online = "1";
if ($HTTP_X_FORWARDED_FOR == "")
{
$ip = getenv(REMOTE_ADDR);
}
else
{
$ip = getenv(HTTP_X_FORWARDED_FOR);
}
$day = date("d");
$month = date("m");
$year = date("Y");
$date = "$day-$month-$year";
$ora = date("H");
$minuti = date("i");
$secondi= date("s");
$time = "$ora:$minuti:$secondi";
$users_read = fopen("$log_file", "r");
$users = fread($users_read, filesize("$log_file"));
fclose($users_read);
$to_write ="$ip|$time|$date";
if($users==0)
{
$user_write = fopen("$log_file", "w");
fputs($user_write , $to_write );
fclose($user_write );
}
else
{
$users=explode("\n",$users);
$user_da_tenere=array();
while (list ($key, $val) = each ($users))
{
$user_sing=explode("|",$val);
if($date==$user_sing[2])
{
$h=explode(":",$user_sing[1]);
if($ip!=$user_sing[0])
{
if(($h[0]==$ora)and(($minuti-$h[1])<=$min_online))
{
$user_da_tenere[]=$val;
}
if(($h[0]==($ora-1))and((($minuti+2)-$h[1])<=$min_online))
{
$user_da_tenere[]=$val;
}
}
}
}
$user_da_tenere[] = $to_write;
$user_write = fopen("$log_file", "w");
fputs($user_write , "" );
fclose($user_write );
while (list ($k, $v) = each ($user_da_tenere))
{
$new_file_log = fopen ("$log_file", "a");
fwrite($new_file_log,"$v\n");
fclose($new_file_log);
}
}
$users_online_read = fopen("$log_file", "r");
$users_online = fread($users_online_read, filesize("$log_file"));
fclose($users_online_read);
$users_online = explode("\n",$users_online);
$n_u_online = count($users_online)-1;
return $n_u_online;
}
echo online_users();
?>
ket :
Script tersebut bisa ditaruh langsung di setiap halaman yg mau ditaruh online user dengan nama online.php
bisa juga di buat halaman sendiri, dan di halaman tempat user online hanya cukup menulis <?php include "online.php" ?>
Selamat mencoba, klo error :P
Nach, skarang gw coba bagi2 caranya :
buat file kosong di notepad dan simpan dengan nama online.txt
masukkan script php berikut di mana kita akan menaruh user online tersebut. Nich scriptnya :
<?php
function online_users()
{
$log_file = "online.txt";
$min_online = "1";
if ($HTTP_X_FORWARDED_FOR == "")
{
$ip = getenv(REMOTE_ADDR);
}
else
{
$ip = getenv(HTTP_X_FORWARDED_FOR);
}
$day = date("d");
$month = date("m");
$year = date("Y");
$date = "$day-$month-$year";
$ora = date("H");
$minuti = date("i");
$secondi= date("s");
$time = "$ora:$minuti:$secondi";
$users_read = fopen("$log_file", "r");
$users = fread($users_read, filesize("$log_file"));
fclose($users_read);
$to_write ="$ip|$time|$date";
if($users==0)
{
$user_write = fopen("$log_file", "w");
fputs($user_write , $to_write );
fclose($user_write );
}
else
{
$users=explode("\n",$users);
$user_da_tenere=array();
while (list ($key, $val) = each ($users))
{
$user_sing=explode("|",$val);
if($date==$user_sing[2])
{
$h=explode(":",$user_sing[1]);
if($ip!=$user_sing[0])
{
if(($h[0]==$ora)and(($minuti-$h[1])<=$min_online))
{
$user_da_tenere[]=$val;
}
if(($h[0]==($ora-1))and((($minuti+2)-$h[1])<=$min_online))
{
$user_da_tenere[]=$val;
}
}
}
}
$user_da_tenere[] = $to_write;
$user_write = fopen("$log_file", "w");
fputs($user_write , "" );
fclose($user_write );
while (list ($k, $v) = each ($user_da_tenere))
{
$new_file_log = fopen ("$log_file", "a");
fwrite($new_file_log,"$v\n");
fclose($new_file_log);
}
}
$users_online_read = fopen("$log_file", "r");
$users_online = fread($users_online_read, filesize("$log_file"));
fclose($users_online_read);
$users_online = explode("\n",$users_online);
$n_u_online = count($users_online)-1;
return $n_u_online;
}
echo online_users();
?>
ket :
Script tersebut bisa ditaruh langsung di setiap halaman yg mau ditaruh online user dengan nama online.php
bisa juga di buat halaman sendiri, dan di halaman tempat user online hanya cukup menulis <?php include "online.php" ?>
Selamat mencoba, klo error :P