Tweet

PHP | Online Ziyaretçi Takibi

Bu dersimizde Sitelerin vazgeçilmezlerinden olan online kullanıcı ve ziyaretçi bildirimi yapan bir program hazırlayacağız. Dersimizin sonunda kolayca sitenize ekleyebileceğiniz. Bir online kullanıcı ve ziyaretçi takip programı oluşturmuş olacağız. Programa geçmeden önce programı kullanmak isteyecek arkadaşlar için bazı açıklamalarım olacak. Eğer programın online üyeleri de göstermesini istiyorsanız kullanıcılarınız giriş yaptığında rumuzlarını bir session değişkenine atın. Aşağıdaki tabloyu veri tabanınızda oluşturun. Birde unutmadan mysql bağlantı değişkenlerini kendi veri tabanınıza göre değiştirin sonra şikayet etmeyin kod çalışmıyor diye .[...]

Tablo Yapısı:

CREATE TABLE `oturum` (
`id` int(11) unsigned NOT NULL auto_increment,
`ip` varchar(25) NOT NULL default '',
`isim` varchar(25) default NULL,
`sure` varchar(25) default NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM;

CODE:
<?
session_start();
$conn=mysql_connect("host","kullanıcı adı","sifre") or
die("Veri tabanına bağlanılamadı Hata Kodu: ".mysql_errno($conn));
$db=mysql_select_db("veritabanı");
if(!$db){echo "veritabanı şeçilemiyor";}
$ip = $_SERVER['REMOTE_ADDR']; //ip adresini değişkene alıyoruz
if(session_is_registered("rumuz")){$online_rumuz=$rumuz;}
//kullanıcı kayıtlımı kontrol ediyoruz.

/*Eğer 15 dakikadan fazla kullanıcı aktif değilse
veri tabanından sileceğiz.*/

$zaman=time();
//şimdik zamanın zaman mührünü aldık
$zaman_asimi = $zaman-900;
//zaman aşımını 15 dakika olarak ayarladık size kalmış
mysql_query("DELETE FROM oturum WHERE sure < $zaman_asimi");

/*Sildiğimiz aktif olmayan kullanıcılardan sonra aktif
olan kullanıcıların $zaman aşımı başlangıç sürelerini
şimdiki zamana update edelim ki 15 dakika daha süre verelim.*/

$zaman=time();
$zaman_asimi = $zaman-900;
$update=mysql_query("UPDATE oturum set sure='$zaman' WHERE ip = $ip and sure > $zaman_asimi");

//Simdide sayfamızı yeni açan kullanıcıları kayıt edelim.

$sorgu=mysql_query("select ip from oturum where ip='$ip'");
$kayit=mysql_num_rows($sorgu);
if($kayit==0)
{
$zaman=time();
mysql_query("INSERT into oturum (id,ip,isim,sure) VALUES('','$ip','$online_rumuz','$zaman')");
}
/*Buraya kadar yapmamız gereken işlemleri yaptık
şimdide online kullanıcı ve ziyaretçi sayımızı gösterenbir
fonksiyon hazırlayalım.*/

function online()
{
$sorgu=mysql_query("SELECT ip from oturum");
$toplam_online=mysql_num_rows($sorgu);
$sorgu2=mysql_query("SELECT isim from oturum where isim != ''");
$online_uye=mysql_num_rows($sorgu2);
$ziyaretci=$toplam_online-$online_uye;
if($sorgu){mysql_free_result($sorgu);}
if($sorgu2){mysql_free_result($sorgu2);}
mysql_close();
return "Sitede".$ziyaretci."ziyaretci".$online_uye."üye toplam".$toplam_online."kullanıcı online";
}
/*Fonksiyonumuz hazır yapmanız gereken bu sayfayı
her sayfanıza include edip echo online(); yazmak. */
?>


Evet arkadaşlar kodumuz hazır umarım faydalı olur. Soru ve yorumlarınızı foruma yazabilirsiniz. Hepinize iyi çalışmalar.


Dia
okanatabag@gmail.com
3 Ocak 2006 14:45

İlgili Olabilecek Makaleler


Yorumlar (7)





gurkanht
11 Temmuz 2008 00:47
Tam aradığım şey, çok teşekkürler.


M.Akif
1 Agustos 2008 17:33
Saolasın.MAŞALLAH ALLAH klavyene zeval vermesin :)


Kahin
8 Agustos 2008 16:23
öncelikle siteniz hayırlı olsun bende php'ye merak salmış yeni biri olarak sitenizden yararlanmak son derece güzel ve kaliteli bilgiler içeriyor.

benim sorum şu bu scripte online ziyaretçileri nasıl ana sayfada gösterebilirim.
örneğin :

aa

aa

cc kullanıcıları şuan sitemizde aktiftir.


siz orda session değişkenine atama yapın demişsiniz yeni olduğumdan açıkçası anlıyamadım. başlıyalı 2 gün olduda. syenizde ilerlerim inş. bu script çok gerekli ama dediğim gibi yapamadım.


sky17
11 Eylul 2008 18:09
kullanşlı ve anlatımı açıklayıcı bir kod elinize sağlık. fakat dikkat çekmek istediğim bir nokta var yeni başlayan arkadaşlar için ufak bir uyarı gibi olsun.

92. satırda mysql_close() komutu var eğer bağlantınız pconnet() kullanarak sağlıyorsanız online işleminde sonra mysql hizmetini kapatacağı için diğer sorgularınız çalışmayacaktır.


rockfears
15 Ekim 2009 17:34
mysql_query("DELETE DROM oturum WHERE sure < ".$zaman_asimi);

$update=mysql_query("UPDATE oturum set sure=".$zaman." WHERE ip = ".$ip." and sure >".$zaman_asimi);
bu şekil olması grekmıyor mu


palax1
24 Aralik 2009 20:44
sorular sorulmuş ama cevap veren yok..belliki arkadaş bunu bir yerden copy paste yapmış..öyle olmasaydı sorulara cevap yazardı


Dia
21 Ocak 2011 15:31
@palax1 bu u script şuan yorum yazdığın sitede de kullanılıyor. Yani benim yazdığım bir scriptir. Soru soran arkadaşı hazırcı bulduğum için cevap vermemiştim yıllar önce. Ben oturum veritabanına üye isimleri dahil güncelleme yapacak scripti makalede anlattım. Bi zahmet arkadaşta select sorgusunu yazsın yani. Diğer arkadaşta benim yazdığım scriptten farklı birşey yazmamış ve böyle olması gerek miyormu demiş ordaki soruyu anlamadım. Umarım açıklayıcı olmuştur. Senin bir sorun varsa onu yanıtlayayım istersen.

Ziyaretçi olarak yorum yazamazsınız. Üye olmak için tıklayın Üye iseniz giriş yapın.



MENÜ » FORUM
Menü » Takip et
RSS Facebook Twitter Friendfeed
Sık Kullanılanlar Google Yahoo Live
Menü » Paylaş
E-Posta ile gönder Twitter Facebook Friendfeed
Buzz Stumbleupon Delicious Digg