Warning: date(): It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected the timezone 'UTC' for now, but please set date.timezone to select your timezone. in /home/fktsekto/public_html/src/php/fonk.php on line 190
Warning: Division by zero in /home/fktsekto/public_html/src/php/fonk.php on line 201
Online Üye Ziyaretçi Sayısı Bulma Algoritması
- 0

oncelikle parametrelerimiz $uyeid olması gerekir ve iki tane vertabanı tablosuna ihtiyaç duyar
tablouye tablosunda mutlaka bir id kısmı olup zamana bağlı olması gerekir ayrıca online sayıyı bulmak
içinde id,zaman,ip sütunları olan bir tablomuz olması gerekir bu durumdan sonra işlem bu algoritmayı her
zaman açılan bir sayfaya gömmekten ibaret oluyor
<?php
funciton online( $uyeid ){
/* öncelikle cookie ile giren üyemizin olup olmadığını kontrol ediyoruz
Eğer ki varsa böyle bir üye döngümüz çalışıyor ve sıkıntısız yeni bir sorgulamaya geçiyor */
$uye_id_varmi = mysql_query ( "SELECT * FROM `tablouye` WHERE `id` =$uyeid" );
$uye_id_sayisi = mysql_num_rows ( $uye_id_varmi ) ;
/* uye varsa deyim çalışacak ve kodlama sırası içeriye girecek */
if($uye_id_sayisi > 0){
/* bahsi geçen id li üyenin cevrim içi tablosunda id si varmı onu kontrol edecek
eğer varsa sadece o anki zamanı değiştireceğiz, lakin yoksa yeni bir tablo oluşturacağız */
$cevrimici_sorgusuine_id_varmi = mysql_query ( "SELECT * FROM `cevrimici` WHERE `id` =$uyeid" );
$cevrimici_sorgusuine_id_sayisi = mysql_num_rows ( $cevrimici_sorgusuine_id_varmi );
if($cevrimici_sorgusuine_id_sayisi > 0 ){
$ip_nosu = $_SERVER["REMOTE_ADDR"];
$simdiki_zaman = time();
$uye_zamani_degis = mysql_query ( "UPDATE `cevrimici` SET `zaman` = '$simdiki_zaman', `ip` = '$ip_nosu' WHERE `id` = '$uyeid'" );
}
/* eğer üye varsa üyenin id numarası ile veritabanında bir yenileme yapıyoruz.
zaman sürekli değişir, ip numarasıda girilen bilgisayara göre değişime uğrar */
/* eğer cevrim içi kısmında kaydı yoksa yeni bir kayıt oluşturuyoruz. */
else{
$ip_nosu = $_SERVER[ "REMOTE_ADDR" ];
$simdiki_zaman = time();
$ekleonl = mysql_query ( "INSERT INTO `cevrimici`(`id`, `zaman`, `ip`) VALUES ('$uyeid','$simdiki_zaman','$ip_nosu')" );
}
}
/* kişi ziyaretçi ise üye id si ile işlem yapamayız ancak ip numarasına bakabiliriz. */
else{
/* ipsi sabit olan üyeyi bulmak için bu sorguyu üretiriz */
$ip_nosu = $_SERVER [ "REMOTE_ADDR" ];
$cevrimici_sorgusuine_ip_sorgusu = mysql_query ( "SELECT * FROM `cevrimici` WHERE `ip` LIKE '$ip_nosu'" );
$cevrimici_sorgusuine_ip_sayisi = mysql_num_rows( $cevrimici_sorgusuine_ip_sorgusu );
/* eğer ip li bir kullanıcı varsa onu alır inceler */
if ( $cevrimici_sorgusuine_ip_sayisi > 0 ){
$simdiki_zaman=time();
/* ziyaretçilerin id sini 0 olarak belirleriz ve sadece zamanını değiştirirz onlar ip numarasından buluruz */
$uye_zamani_degis = mysql_query( "UPDATE `cevrimici` SET `zaman` = '$simdiki_zaman', `id` = '0' WHERE `ip` = '$ip_nosu'" );
}
/* eğer misafir olduğu halde cevrimiçi tablosunda yoksa onu bu sefer eklemek için uğraşıyoruz
else{
$ip_nosu = $_SERVER[ "REMOTE_ADDR" ];
$simdiki_zaman = time();
$ekleonl = mysql_query ( "INSERT INTO `cevrimici`(`id`, `zaman`, `ip`) VALUES ('$uyeid','$simdiki_zaman','$ip_nosu')" );
}}
/* gerekli veritabanı işlemlerini yaptık şimdi istatistiklere bakacağız. web sitemizin içerisinde üye tutma zamanını kontrol ederek onu sayıya
çevirerek yani mesela 5 dakika 5x60 = 300 olması gibi belirli bir süre zarfı belirleyeceğiz. */
$simdiki_zaman = time();
$bes_dk = $simdiki_zaman - 300;
/*beş dk içerisinde sayfa içerisinde hareket etmeyen üyelerimizi tespit eden sorgu yaratıyoruz */
$ziyaretci_sorgusu = mysql_query ( "SELECT * FROM `cevrimici` WHERE `zaman` <$bes_dk" );
while ( $ziyaretci_sorgusu2 = mysql_fetch_assoc ($ziyaretci_sorgusu ))
{
/* zamanda geride kalmış üyeleri tek tek veri tabanında silerek gerçek online sayısını bulmayı hedefliyor
$sil_zaman = $ziyaretci_sorgusu2['zaman'];
$sil_ip_no = $ziyaretci_sorgusu2 ['ip'];
$silme_sorgusu = mysql_query( "DELETE FROM `cevrimici` WHERE `zaman` = $sil_zaman AND `cevrimici`.`ip` = '$sil_ip_no'" );
}
/* şimdi silindikten sonra tablomuzdaki online uye sayısını buluyoruz
$cevrimici_sorgusu = mysql_query( "SELECT * FROM `cevrimici` " );
$cevrimicisayi = mysql_num_rows( $cevrimici_sorgusu );
/* çevrim içi olan ziyaretçilerin sayısı buluruz
$ziyaretci_sorgusu = mysql_query( "SELECT * FROM `cevrimici` WHERE `id` =0" );
$ziyaretcisayisi = mysql_num_rows( $ziyaretci_sorgusu );
/* toplam çevrimiçi üye sayısından ziyaretçileri çıkartınca da üyelerin sayısını buluruz */
$ziyaretci_sorgusuuyesayi = $cevrimicisayi - $ziyaretcisayisi;
}
online(0821812391);
?>
Yorum Yap & Puan Ver
- 0