PHP Sayaç Yapımı – Online – Tekil – Çoğul Ziyaretçi Saydırma

Merhaba arkadaşlar bu yazımda sizlerle gelişmiş veritabanı destekli ziyaretçi sayacı yapımını anlatacağım.
Sayacımızın görüntüsü aşağıdaki gibi olacaktır.

Ziyaretci Sayacı Görüntüsü
Ziyaretci Sayacı Görüntüsü

Sayacımı yapmak için öncelikle sayac.php adında bir php dosyası oluşturalım ve kaydedelim.

[ad#orta]

Örnek Uygulama
1 ) Veritabınımızda sayacımızın değerlerini tutan 3 adet tabloya ihtiyacımız var. Bunları oluşturmakla işe başlayalım.
Deneme adlı bir veri tabanı oluşturdum. İçinde 3 tane tablom olacak. Bunlar;
ip_sayaci tablomuzda gelen kişilerin ip’lerini ve kaç defa sayfayı gezdiklerini öğrenmek ve günlük tekil hit, dünün tekil hiti gibi sayısal verileri de bu tablo üzerinden çekeceğiz.

CREATE TABLE `ip_sayaci` (
  `id` INT(11) NOT NULL AUTO_INCREMENT,
  `tarih` DATE NOT NULL,
  `tiklama` INT(11) NOT NULL,
  `ip` VARCHAR(50) NOT NULL,
  PRIMARY KEY  (`id`)
)

toplam_sayac üzerinde ise sadece toplam tekil hiti ve çoğul hiti tutmak için kullanacağız.

CREATE TABLE `toplam_sayac` (
  `id` INT(11) NOT NULL AUTO_INCREMENT,
  `toplam_tekil` INT(11) NOT NULL,
  `toplam_cogul` INT(11) NOT NULL,
  PRIMARY KEY  (`id`)
)

online_ziyaretci üzerinde ise online ziyaretçileri saydırmak için kullanacağımızı isminden kolayca anladığınız gözlerinizden okunuyor.

CREATE TABLE `online_ziyaretci` (
  `id` INT(11) NOT NULL AUTO_INCREMENT,
  `ip` VARCHAR(50) NOT NULL,
  `tarih` INT(11) NOT NULL,
  PRIMARY KEY  (`id`)
)

2 ) Kodlarımızı satır satır açıklayarak devam edersek daha anlamlı olacaktır. Ve ilk başlangıcı yapalım. sayac.php‘yi açalım. Ve…

<?php
function sayac() {
@mysql_connect("localhost", "root", "123") or die("Host ile bağlantı kurulamıyor: " . mysql_error());
@mysql_select_db("deneme");

mysql_connect(hostadi,kullaniciadi,sifre) fonksiyonu ile hosta bağlandık.
mysql_select_db(“veritabaniadi”) fonksiyonu ile de veritabanımıza bağlandık.
3 )

$gun=0;

Burada Kaç gün öncesinin kayıtları silinmesi gerektiğini ayarlayıruz. Eğer sıfırdan farklı bir değer girmezseniz hiç bir zaman kayıtları silmeyecektir.
4 )

$ip=$_SERVER['REMOTE_ADDR'];

Siteye ziyaret edenin IP’sini $_SERVER[‘REMOTE_ADDR’] komutu bize verecektir.
5 )

$zaman=time();

Şu anki zamanı öğrenmemizi sağlar ve saniye cinsindendir.(Online sayaç için)
6 )

$buguntarih = date('Y-m-d');

Bugünün tarihini öğreniyoruz. Çünkü ziyaret edenlerin sitemizi bugün içerisinde kaç kere ziyaret ettiğini öğrenmek için.
7 )

$sure_siniri=$zaman-60*5;

Burada zaman 300 saniye yani 5 dk lik bir limit koyuyoruz ve 5 dk süre ile ziyaretçi sitede herhangi bir işlem yapmadıysa online kısmında düşmek için bunu kullanacağız. Yani Online olayı 5 dk içindeki aktifliğine göre ayarlanıyor.
8 )

$kayit_sorgu = mysql_query("SELECT * FROM ip_sayaci WHERE tarih='$buguntarih' AND ip='$ip'");
$kayit_sayisi=mysql_num_rows($kayit_sorgu);

Bugün siteye gelen ziyaretçi bu IP ile daha önce giriş yapmış mı yoksa yapmamışmı diye kontrol etmek istiyoruz.Burada daha onceden bugun tarihi ile giriş yapımış ise 1 değerini döndürcektir. Biz de bu sayede tekil sayısını saptamada birinci adımı atmış olacağız.
9 )

/*Başlangıç--Bugün bu IP ile ilk giriş yapılınca bu işlemler gerçekleşecektir.*/
if($kayit_sayisi==0){//Sıfır (0) değeri geldi ise bugün daha önceden bu IP ile giriş yapılmamış demektir. Bu yüzden ip_sayaci tablomuza yeni veri girişi yapmamız gerekecektir.
	$ip_kaydet=mysql_query("INSERT INTO ip_sayaci (tarih, tiklama, ip) VALUES ('$buguntarih',1,'$ip')");//Veri girişini yaptık.
	$toplam_kayit_sorgu=mysql_query("SELECT * FROM toplam_sayac");//Burada eğer ki sayaç yeni oluşturuluyorsa tablo'da hiç kayıt yok demektir. Eğer öle ise kayıt var mı yokmu onu öğreneceğiz.
	$toplam_kayit_sayisi=mysql_num_rows($toplam_kayit_sorgu);//Kayır var ise kayıt sayısını getirir. Normalde 1 tane kayıttan sonra başka kayıt girilmez bu tabloya. Yani sayac siteye kurulduktan sonra siteyi ilk ziyaret eden bu tabloya veri girişini yapar. Diğer kullanıcılar ise sürekli güncelleme yaptırır.
	if($toplam_kayit_sayisi==0){//Sıfır(0) yani sayaç ilk kurumda ise Toplam_sayac tablosuna ilk veri girişi burada yapılır.
		$toplam_sayaci_baslat=mysql_query("INSERT INTO toplam_sayac(toplam_tekil,toplam_cogul) VALUES(1,1)");//Veri girişi yapılıyor.
	}
	else{//Eğer tablo_sayac' a veri girişi daha önceden yapıldıysa burada güncelleme yapılır.
		$toplam_sayaci_artir = mysql_query("UPDATE toplam_sayac SET toplam_tekil=toplam_tekil+1, toplam_cogul=toplam_cogul+1 WHERE id=1 LIMIT 1");//Güncelleme yapılıyor.
	}
}
/*Bitiş--Bugün bu IP ile ilk giriş yapılınca bu işlemler gerçekleşecektir.*/

Burada ise siteye gün içinde ilk kez giriş yapan birisinin kontrolü yapılmaktadır.
10 )

 
/*Başlangıç--Bugün daha önceden bu IP ile giriş yapımıştır*/
else{
$ip_sayaci_arttir = mysql_query("UPDATE ip_sayaci SET tiklama=tiklama+1 WHERE tarih='$buguntarih' and ip='$ip'");//SAdece ip_sayaci tablosundaki bugün tarihli ve IP'ye eşit verinin tıklama sayısını arttır.
$toplam_sayaci_artir1 = mysql_query("UPDATE toplam_sayac SET toplam_cogul=toplam_cogul+1 WHERE id=1 LIMIT 1");//Toplam_sayac tablosunda sadece cogul verisini arttır.
}
/*Bitiş--Bugün daha önceden bu IP ile giriş yapımıştır*/

Burada da bugün içinde daha önceden giriş yaptıysa onun güncellemeleri yapılmaktadır.
11 )

if ($gun > 0){
	$eski_kayit_sil = mysql_query("DELETE FROM ip_sayaci WHERE tarih <= DATE_SUB('$buguntarih', INTERVAL $gun DAY)");
}

Burada ip_sayaci tablomuzdaki silinecek kayıt varmı diye kontrol ediyor ve siliyoruz.
12 )

 
 
/*Başlangıç-Online ziyaretçileri saydırmak için yapılan veri giriş, güncelleme ve silme*/
//Süre sınırı ile ilgi sql cümleciği
$sure_miktari= mysql_query("DELETE FROM online_ziyaretci WHERE tarih<'$sure_siniri'");//Burada online olmayanları tablodan siliyor.
 
$ipsorgu=mysql_query("SELECT * FROM online_ziyaretci WHERE ip='$ip'");
//ip'li kullanıcı daha öncede sitede varmıydı diye sorgu gonderiyoruz.
 
$ipline	=mysql_num_rows($ipsorgu);//Varsa 1 değeri dönecektir.
 
if($ipline==0)//Eğer yok ise siteme kayıt ediyoruz.
{
	$gir="INSERT INTO online_ziyaretci VALUES ('','$ip','$zaman')";
	$girsor=mysql_query($gir);
}
else //Sistemde var ise tekrar girmeye gerek yoktur. Sadece zamanı güncellemek yeterlidir.
{
	$guncelle=mysql_query("UPDATE online_ziyaretci SET tarih='$zaman' WHERE ip='$ip'");
}
/*Bitiş-Online ziyaretçileri saydırmak için yapılan veri giriş, güncelleme ve silme*/

Online ziyaretçileri saydırma işlemi için gerekli kodlarımız….
13 )

/*Başlangıç--Sistemdeki Online Ziyaretcilerin Sayısını Öğrenme*/
$kac=mysql_query("SELECT id FROM online_ziyaretci");
//Sorgumuzu yapıyoruz
$online_ziyaretci_sayisi=mysql_num_rows($kac);
//Tabloda kaç satır var ise o kadar online ziyaretçi var demektir. Onu öğrenmiş olduk.
/*Bitiş--Sistemdeki Online Ziyaretcilerin Sayısını Öğrenme*/

Online ziyaretçilerin sayısını öğreniyoruz.
14 )

/*Başlangıç--Sistemdeki Toplam Tekil ve Çoğul Ziyaretçilerin Sayısını Öğrenme*/
$toplam_tc=mysql_query("SELECT * FROM toplam_sayac WHERE id=1 LIMIT 1");
//Sorgumuzu yapıyoruz. 1. satırdaki bilgiler bizim verilerimizi içerir.
$toplam_tc_cek=mysql_fetch_array($toplam_tc);
//Sorgumuz ile verileri diziye attık.
$toplam_tekil_sayisi=$toplam_tc_cek["toplam_tekil"];
//Tekil sayısı
$toplam_cogul_sayisi=$toplam_tc_cek["toplam_cogul"];
//Çoğul Sayısı
/*Bitiş--Sistemdeki Toplam Tekil ve Çoğul Ziyaretçilerin Sayısını Öğrenme*/

Burada da sistemdeki toplam tekil ve çoğul ziyaretçilerin sayısını öğreniyoruz.
15 )

/*Başlangıç--Sistemdeki Bugünün Tekil ve Çoğul Ziyaretçilerin Sayısını Öğrenme*/
$bugun = mysql_query("SELECT COUNT(ip) AS ttoplam, SUM(tiklama) AS ctoplam FROM ip_sayaci WHERE tarih='$buguntarih'");
//Sorgumuzu yaptık. Bu sorguyu anlamak için biraz MYSQL bilginiz olursa daha rahat edersiniz.
//1. Tekil sayısını bugün kaç tane giriş yapan IP varsa onu saydırarak öğrenebiliriz.
//2. Çoğul sayısını bugün kaç tane tiklama varsa onları toplatırarak öğrenebiliriz.
$bugun_veri = mysql_fetch_object($bugun);
//Burada farklılık olması açısından Class'a attım verilerimizi
$bugun_tekil = $bugun_veri->ttoplam;//Bugün Toplam Tekil Ziyaretci Sayısı
$bugun_cogul = $bugun_veri->ctoplam;//Bugün Toplam Çoğul Ziyaretçi SAyısı
/*Bitiş--Sistemdeki Bugünün Tekil ve Çoğul Ziyaretçilerin Sayısını Öğrenme*/

Burada ise sistemdeki bugün için tekil ve çoğul ziyaretçilerin sayısını öğreniyoruz.
16 )

/*Başlangıç--Sistemdeki Dün Tekil ve Çoğul Ziyaretçilerin Sayısını Öğrenme*/
$dun = mysql_query("SELECT COUNT(ip) AS dttoplam, SUM(tiklama) AS dctoplam FROM ip_sayaci WHERE tarih = DATE_SUB('$buguntarih', INTERVAL 1 DAY)");
//Sorgumuzu yaptırıyoruz.SQL cümleciğindeki tek fark gün işlemleri fonksiyonu olan DATE_SUB'u kullandık ve önceki tarihteki değeri öğrendik.
$dun_veri = mysql_fetch_object($dun);//Class'a attık.
$dun_tekil = $dun_veri->dttoplam;//Dün Toplam Tekil Ziyaretci Sayısı
$dun_cogul = $dun_veri->dctoplam;//Dün Toplam Çoğul Ziyaretci Sayısı
/*Bitiş--Sistemdeki Dün Tekil ve Çoğul Ziyaretçilerin Sayısını Öğrenme*/
?>

Burada da dün ki ziyaretçilerin sayısını öğreniyoruz. Siz bunu geçen hafataki veya bu ay gibi şekillerde de çoğaltarak kullanabilirsiniz.
17 )

<table width="240" border="1" cellpadding="0" cellspacing="0" bordercolor="#333333" bgcolor="#99CCCC" align="center">
  <tr>
    <td colspan="3" bgcolor="#99CCCC"><div align="center"><strong><a href="http://www.phpsorunu.com" target="_blank">ZİYARETÇİ SAYACI</a></strong></div></td>
  </tr>
  <tr>
    <td width="108" bgcolor="#99FF99">Online</td>
    <td width="4" bgcolor="#99FF99">:</td>
    <td width="141" bgcolor="#99FF99"><?php echo $online_ziyaretci_sayisi; ?></td>
  </tr>
  <tr>
    <td bgcolor="#99CCCC">Bugün Tekil</td>
    <td bgcolor="#99CCCC">:</td>
    <td bgcolor="#99CCCC"><?php echo $bugun_tekil; ?></td>
  </tr>
  <tr bgcolor="#99FF99">
    <td>Bugün Çoğul</td>
    <td>:</td>
    <td><?php echo $bugun_cogul; ?></td>
  </tr>
  <tr bgcolor="#99CCCC">
    <td>Dün Tekil</td>
    <td>:</td>
    <td><?php echo $dun_tekil; ?></td>
  </tr>
  <tr bgcolor="#99FF99">
    <td>Dün Çoğul</td>
    <td>:</td>
    <td><?php echo $dun_cogul; ?></td>
  </tr>
  <tr bgcolor="#99CCCC">
    <td>Toplam Tekil</td>
    <td>:</td>
    <td><?php echo $toplam_tekil_sayisi; ?></td>
  </tr>
  <tr bgcolor="#99FF99">
    <td>Toplam Çoğul</td>
    <td>:</td>
    <td><?php echo $toplam_cogul_sayisi; ?></td>
  </tr>
  <tr>
    <td bgcolor="#99CCCC">IP</td>
    <td bgcolor="#99CCCC">:</td>
    <td bgcolor="#99CCCC"><?php echo $ip; ?></td>
  </tr>
  <tr>
    <td colspan="3" bgcolor="#99FF99"><div align="right"><a href="http://www.phpsorunu.com">phpsorunu</a> </div></td>
  </tr>
</table>

Burası ise sayacımızın ekrana yazdırılacağı kısımdır. Yani sayacımız resimdeki gibi gözükecek…
18 )

<?php
}
sayac();
//Yazdığımız fonksiyonumuzu çağırdık.
?>

Burada ise yazdığımız fonksiyonu çağırdık ve sayacımızın yapımı da burada sona ermiş oldu.

Örneği indirmek için tıklayınız…
Örneğimizin tamamı…İsterseniz buradan da kopyalayabilirsiniz.

 
 
<?php
/*
SQL Kodları Oluşturma
 
CREATE TABLE `ip_sayaci` (
  `id` int(11) NOT NULL auto_increment,
  `tarih` date NOT NULL,
  `tiklama` int(11) NOT NULL,
  `ip` varchar(50) NOT NULL,
  PRIMARY KEY  (`id`)
) 
 
CREATE TABLE `toplam_sayac` (
  `id` int(11) NOT NULL auto_increment,
  `toplam_tekil` int(11) NOT NULL,
  `toplam_cogul` int(11) NOT NULL,
  PRIMARY KEY  (`id`)
)
 
CREATE TABLE `online_ziyaretci` (
  `id` int(11) NOT NULL auto_increment,
  `ip` varchar(50) NOT NULL,
  `tarih` int(11) NOT NULL,
  PRIMARY KEY  (`id`)
)
 
 
*/
 
 
function sayac() {
 
@mysql_connect("localhost", "root", "123") or die("Host ile bağlantı kurulamıyor: " . mysql_error());
@mysql_select_db("deneme");
 
$gun=0;
//Kaç gün öncesinin kayıtları silinsin?Eğer sıfırdan farklı bir değer girmezseniz hiç bir zaman kayıtları silmez
 
$ip			=$_SERVER['REMOTE_ADDR'];
//Siteye ziyaret edenin IP'sini öğrenelim
 
$zaman		=time();
//Şu anki zamanı öğrenmemizi sağlar ve saniye cinsindendir.(Online sayac icin)
 
$buguntarih = date('Y-m-d');
//Bugünün tarihini öğreniyoruz. Çünkü ziyaret edenlerin sitemizi bugün içerisinde kaç kere ziyaret ettiğini öğrenmek için.
 
$sure_siniri=$zaman-60*5;
//Burada zaman 300 saniye 5 dk lik bir limit koyuyoruz ve 5 dk süre ile sitede herhangi bir işlem yapmadıysa online kısmında düşmek için bunu kullanacağız. Yani Online olayı 5 dk içindeki aktifliğine göre ayarlanıyor.
 
$kayit_sorgu = mysql_query("SELECT * FROM ip_sayaci WHERE tarih='$buguntarih' AND ip='$ip'");
//Bugün siteye gelen ziyaretçi bu IP ile daha önce giriş yapmış mı yoksa yapmamışmı diye kontrol etmek istiyoruz.
 
$kayit_sayisi=mysql_num_rows($kayit_sorgu);
//Burada daha onceden bugun tarihi ile giriş yapımış ise 1 değerini döndürcektir. Biz de bu sayede tekil sayısını saptamada birinci adımı atmış olacağız.
 
/*Başlangıç--Bugün bu IP ile ilk giriş yapılınca bu işlemler gerçekleşecektir.*/
if($kayit_sayisi==0){//Sıfır (0) değeri geldi ise bugün daha önceden bu IP ile giriş yapılmamış demektir. Bu yüzden ip_sayaci tablomuza yeni veri girişi yapmamız gerekecektir.
	$ip_kaydet=mysql_query("INSERT INTO ip_sayaci (tarih, tiklama, ip) VALUES ('$buguntarih',1,'$ip')");//Veri girişini yaptık.
	$toplam_kayit_sorgu=mysql_query("SELECT * FROM toplam_sayac");//Burada eğer ki sayaç yeni oluşturuluyorsa tablo'da hiç kayıt yok demektir. Eğer öle ise kayıt var mı yokmu onu öğreneceğiz.
	$toplam_kayit_sayisi=mysql_num_rows($toplam_kayit_sorgu);//Kayır var ise kayıt sayısını getirir. Normalde 1 tane kayıttan sonra başka kayıt girilmez bu tabloya. Yani sayac siteye kurulduktan sonra siteyi ilk ziyaret eden bu tabloya veri girişini yapar. Diğer kullanıcılar ise sürekli güncelleme yaptırır.
	if($toplam_kayit_sayisi==0){//Sıfır(0) yani sayaç ilk kurumda ise Toplam_sayac tablosuna ilk veri girişi burada yapılır.
		$toplam_sayaci_baslat=mysql_query("INSERT INTO toplam_sayac(toplam_tekil,toplam_cogul) VALUES(1,1)");//Veri girişi yapılıyor.
	}
	else{//Eğer tablo_sayac' a veri girişi daha önceden yapıldıysa burada güncelleme yapılır.
		$toplam_sayaci_artir = mysql_query("UPDATE toplam_sayac SET toplam_tekil=toplam_tekil+1, toplam_cogul=toplam_cogul+1 WHERE id=1 LIMIT 1");//Güncelleme yapılıyor.
	}
}
/*Bitiş--Bugün bu IP ile ilk giriş yapılınca bu işlemler gerçekleşecektir.*/
 
/*Başlangıç--Bugün daha önceden bu IP ile giriş yapımıştır*/
else{
$ip_sayaci_arttir = mysql_query("UPDATE ip_sayaci SET tiklama=tiklama+1 WHERE tarih='$buguntarih' and ip='$ip'");//SAdece ip_sayaci tablosundaki bugün tarihli ve IP'ye eşit verinin tıklama sayısını arttır.
$toplam_sayaci_artir1 = mysql_query("UPDATE toplam_sayac SET toplam_cogul=toplam_cogul+1 WHERE id=1 LIMIT 1");//Toplam_sayac tablosunda sadece cogul verisini arttır.
}
/*Bitiş--Bugün daha önceden bu IP ile giriş yapımıştır*/
 
//Eski kayıtları (ip_sayaci) tablosundan siler.
if ($gun > 0){
	$eski_kayit_sil = mysql_query("DELETE FROM ip_sayaci WHERE tarih <= DATE_SUB('$buguntarih', INTERVAL $gun DAY)");
}
 
/*Başlangıç-Online ziyaretçileri saydırmak için yapılan veri giriş, güncelleme ve silme*/
//Süre sınırı ile ilgi sql cümleciği
$sure_miktari= mysql_query("DELETE FROM online_ziyaretci WHERE tarih<'$sure_siniri'");//Burada online olmayanları tablodan siliyor.
 
$ipsorgu=mysql_query("SELECT * FROM online_ziyaretci WHERE ip='$ip'");
//ip'li kullanıcı daha öncede sitede varmıydı diye sorgu gonderiyoruz.
 
$ipline	=mysql_num_rows($ipsorgu);//Varsa 1 değeri dönecektir.
 
if($ipline==0)//Eğer yok ise siteme kayıt ediyoruz.
{
	$gir="INSERT INTO online_ziyaretci VALUES ('','$ip','$zaman')";
	$girsor=mysql_query($gir);
}
else //Sistemde var ise tekrar girmeye gerek yoktur. Sadece zamanı güncellemek yeterlidir.
{
	$guncelle=mysql_query("UPDATE online_ziyaretci SET tarih='$zaman' WHERE ip='$ip'");
}
/*Bitiş-Online ziyaretçileri saydırmak için yapılan veri giriş, güncelleme ve silme*/
 
 
/*Başlangıç--Sistemdeki Online Ziyaretcilerin Sayısını Öğrenme*/
$kac=mysql_query("SELECT id FROM online_ziyaretci");
//Sorgumuzu yapıyoruz
$online_ziyaretci_sayisi=mysql_num_rows($kac);
//Tabloda kaç satır var ise o kadar online ziyaretçi var demektir. Onu öğrenmiş olduk.
/*Bitiş--Sistemdeki Online Ziyaretcilerin Sayısını Öğrenme*/
 
/*Başlangıç--Sistemdeki Toplam Tekil ve Çoğul Ziyaretçilerin Sayısını Öğrenme*/
$toplam_tc=mysql_query("SELECT * FROM toplam_sayac WHERE id=1 LIMIT 1");
//Sorgumuzu yapıyoruz. 1. satırdaki bilgiler bizim verilerimizi içerir.
$toplam_tc_cek=mysql_fetch_array($toplam_tc);
//Sorgumuz ile verileri diziye attık.
$toplam_tekil_sayisi=$toplam_tc_cek["toplam_tekil"];
//Tekil sayısı
$toplam_cogul_sayisi=$toplam_tc_cek["toplam_cogul"];
//Çoğul Sayısı
/*Bitiş--Sistemdeki Toplam Tekil ve Çoğul Ziyaretçilerin Sayısını Öğrenme*/
 
/*Başlangıç--Sistemdeki Bugünün Tekil ve Çoğul Ziyaretçilerin Sayısını Öğrenme*/
$bugun = mysql_query("SELECT COUNT(ip) AS ttoplam, SUM(tiklama) AS ctoplam FROM ip_sayaci WHERE tarih='$buguntarih'");
//Sorgumuzu yaptık. Bu sorguyu anlamak için biraz MYSQL bilginiz olursa daha rahat edersiniz.
//1. Tekil sayısını bugün kaç tane giriş yapan IP varsa onu saydırarak öğrenebiliriz.
//2. Çoğul sayısını bugün kaç tane tiklama varsa onları toplatırarak öğrenebiliriz.
$bugun_veri = mysql_fetch_object($bugun);
//Burada farklılık olması açısından Class'a attım verilerimizi
$bugun_tekil = $bugun_veri->ttoplam;//Bugün Toplam Tekil Ziyaretci Sayısı
$bugun_cogul = $bugun_veri->ctoplam;//Bugün Toplam Çoğul Ziyaretçi SAyısı
/*Bitiş--Sistemdeki Bugünün Tekil ve Çoğul Ziyaretçilerin Sayısını Öğrenme*/
 
/*Başlangıç--Sistemdeki Dün Tekil ve Çoğul Ziyaretçilerin Sayısını Öğrenme*/
$dun = mysql_query("SELECT COUNT(ip) AS dttoplam, SUM(tiklama) AS dctoplam FROM ip_sayaci WHERE tarih = DATE_SUB('$buguntarih', INTERVAL 1 DAY)");
//Sorgumuzu yaptırıyoruz.SQL cümleciğindeki tek fark gün işlemleri fonksiyonu olan DATE_SUB'u kullandık ve önceki tarihteki değeri öğrendik.
$dun_veri = mysql_fetch_object($dun);//Class'a attık.
$dun_tekil = $dun_veri->dttoplam;//Dün Toplam Tekil Ziyaretci Sayısı
$dun_cogul = $dun_veri->dctoplam;//Dün Toplam Çoğul Ziyaretci Sayısı
/*Bitiş--Sistemdeki Dün Tekil ve Çoğul Ziyaretçilerin Sayısını Öğrenme*/
 
?>
 
<table width="240" border="1" cellpadding="0" cellspacing="0" bordercolor="#333333" bgcolor="#99CCCC" align="center">
  <tr>
    <td colspan="3" bgcolor="#99CCCC"><div align="center"><strong><a href="http://www.phpsorunu.com" target="_blank">ZİYARETÇİ SAYACI</a></strong></div></td>
  </tr>
  <tr>
    <td width="108" bgcolor="#99FF99">Online</td>
    <td width="4" bgcolor="#99FF99">:</td>
    <td width="141" bgcolor="#99FF99"><?php echo $online_ziyaretci_sayisi; ?></td>
  </tr>
  <tr>
    <td bgcolor="#99CCCC">Bugün Tekil</td>
    <td bgcolor="#99CCCC">:</td>
    <td bgcolor="#99CCCC"><?php echo $bugun_tekil; ?></td>
  </tr>
  <tr bgcolor="#99FF99">
    <td>Bugün Çoğul</td>
    <td>:</td>
    <td><?php echo $bugun_cogul; ?></td>
  </tr>
  <tr bgcolor="#99CCCC">
    <td>Dün Tekil</td>
    <td>:</td>
    <td><?php echo $dun_tekil; ?></td>
  </tr>
  <tr bgcolor="#99FF99">
    <td>Dün Çoğul</td>
    <td>:</td>
    <td><?php echo $dun_cogul; ?></td>
  </tr>
  <tr bgcolor="#99CCCC">
    <td>Toplam Tekil</td>
    <td>:</td>
    <td><?php echo $toplam_tekil_sayisi; ?></td>
  </tr>
  <tr bgcolor="#99FF99">
    <td>Toplam Çoğul</td>
    <td>:</td>
    <td><?php echo $toplam_cogul_sayisi; ?></td>
  </tr>
  <tr>
    <td bgcolor="#99CCCC">IP</td>
    <td bgcolor="#99CCCC">:</td>
    <td bgcolor="#99CCCC"><?php echo $ip; ?></td>
  </tr>
  <tr>
    <td colspan="3" bgcolor="#99FF99"><div align="right"><a href="http://www.phpsorunu.com">phpsorunu</a> </div></td>
  </tr>
</table>
 
 
<?php
}
sayac();
//Yazdığımız fonksiyonumuzu çağırdık.
?>

Örneği indirmek için tıklayınız…
Örnek Uygulama
Herkese başarılar…

KategorilerPhp

“PHP Sayaç Yapımı – Online – Tekil – Çoğul Ziyaretçi Saydırma” için 48 cevap

  1. Selam hocam ben bunu yönetim paneline koymak istiyorum yani millet görmesin sayacı ama siteyi gezenleri ölçsün onu bir türlü ayarlayamadım sadece sayac.php ye girince artış gösteriyo.böyle anasayfa ekleyeceğimiz bir kod varmı oradan sayac.php ye yazsın ?

  2. tabloya kadar olan php yi ust.php deye include ettim ama beyaz sayfa çıkıyor.acaba neden olur.birde yönetim panelinde yazdırma kodunude ekleyince oradada beyaz sayfa oluyor.bana şunu bi parçalayıp atsana bi türlü yapamadım.Şimdi benim sitede ust.php var o dosya üst kısımı getiyor yani bütün sayfalarda görünüyor.oraya bi kod eklemen lazım bütün sayfalardaki ziyaretçileri veritabanına yazsın.birde /admin/index.php ye bi kod eklemem gerekiyo oradada ziyaretçileri gözetleyeyim.bunu bana ayarlayabilirsimisin ?

  3. Merhabalar paylaştığınız scripti Web Siteme entegre ettim, fakat şöyle bir sıkıntım var, aynı ağı kullanan Labaratuarımda ki birbilgisayarın okulun sitesini ziyaret ettiğinde tekil tek artış sağlıyor, diğer bilgisayarların girişi etkilemiyor artışı buna bir çözüm öneriniz var mıdır ?

    teşekkürler.

  4. Tekil ziyaretlerde IP önemli olduğu için bu yüzden aynı ağdaki bilgisayarları da tek bir çıkış IP'i olduğu için onlar sadece çoğul sayacı artırıyor. Şu anda ona yapılabilecek hiç bir şey aklıma gelmiyor…

  5. mrb hocam sayacı siteye koyamadım lütfen yardimcı olun sayacı localde çaliştirdim

    siteye nasil koyacam bilmiyorum yardımcı olursanız çok memnun olurum

    yani hangi kodu siteye ekliyecem veya html sini nasil alaçam ?

    1. hocam tamam çoğul sayıyorda siteye gelen biri her sayfayı değiştirdiğinde sayıyor acaba bunu en gelemenin bir yolu yokmu

  6. İyi günler,

    Kodlarınız mükemmel, yalnız şunu nasıl yapabilirim…
    Sayıları noktalı (mesela 4500'ü 4.500 olarak) nasıl gösterebiliriz.
    Yardımcı olursanız memnun olurum….

  7. veri tabanı örneğini .sql olarak atabilir misiniz? ben orasını anlamadım bi türlü yapamadım . dump etmek istiyorum

    1. Hocam o kadar kolay ki upload etmeye değmez. phpmyadin'e girin orada bir veritabanı oluşturun. Ve oluşturduğunuz veritabanı içerisindeki menülerde SQL diye yazar oraya tıklayın ve create table diye yazan komutlar vara mysql komutları içerikteki onları da komple oraya yapıştırın sorununuz hallolcaktır.

  8. Dostum teşekkürler yaptım ama bir sorunum var mysql bilgim tam olmadığından çözemedim dünki çoğul boş gözüküyor tekil'i gösteriyor ama çoğul göstermiyor sebebi ne olabilir? Kodlar tıpatıp aynı sadece görüntülemeyi panelden yapıyoum bugünki tarih değişkenin fln var?

  9. Çok teşekkürler siteme entegre ettim tam olarak böyle bir şey arıyordum gereksiz sayaçlardan kurtulmuş oldum bu güzel paylaşım için size teşekkür ederim inşallah tekrar sitenizi php konusunda ziyaret edeceğim.

  10. Çok sağolun gayet kullanışlı. Ben bunu geliştirip tıklama sayısını label'a yazdırmak istiyorum. Onun için nasıl bir yol izlemeliyim?

  11. Allah razı olsun kardeşim ellerinize sağlık. Serverı yoran asp sayaçlardan beni kurtardınya, Allah ne muradın varsa versin inşaallah

  12. Hocam bu sayacı index.php sayfama koyuyorum, çalışıyor.Sıkıntım şu: ben admin panelinde bundan gelen değerleri nasıl göstereceğim.Eğer basit bir işse zamanınıza fazla almayacaksa lütfen kod olarak yazıp yardımcı olabilir misiniz ?

  13. bu kodların hepsini sayac.php içinemi atıcaz anlamadım yoksa ayrı ayrı dosyalaramı atıcaz eğer öyleyse dosyalara hangi isimleri vericez php publicte nereye atıcaz
    fazla anlamıyorum lütfen yardımcı olun
    veritabanında tabloları oluşturdum ama kodları çözemedim

  14. selamün aleyküm hocam öncelikle elinize emeğinize sağlık ben bu kodları admin panelinde görmek istiyorum onu nasıl yapabilirim

  15. gerçekten çok güzel bi uygulama olmuş çok aradıktan sonra bu kadar detaylı anlatım buldum teşekkürler

  16. gerçekten çok güzel bi uygulama olmuş çok aradıktan sonra bu kadar detaylı anlatım buldum teşekkür ediyorum

  17. gerçekten çok güzel bi uygulama olmuş çok aradıktan sonra bu kadar detaylı anlatım buldum emeğiniz için teşekkürler

  18. Tekil ve çoğul ziyaretçiyi ayrı ayrı sayması önemliydi benim için, çok teşekkürler. Emeğiniz için teşekkürler.

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir