Ziyaretci sayacı php

•Php ile hazırlanmış web sitenizde kullanabileceğiniz bir sayaç uygulamasıdır.
•Veri tabanı olarak mysql kullanılmaktadır.
•Aynı anda online kullanıcı sayısı, toplam kullanıcı sayısı, ziyaretçi ip, dün ve bugüne ait toplam tekil ziyaretçi sayısını gösterir.
•Ayrıca veri tabanına yapılan ziyaretçi kayıtlarını phpmyadmin'e girmeden görmenize olanak tanır.
•Listelediğimiz kayıtların konumunu sorgular.

#-----------------------------------------------------------------------#
#Aşağıdaki kodları sayac.php olarak kaydedin                         #
#-----------------------------------------------------------------------#

 

 

<?php 
include "db_baglan.php"; 
echo "<div align='center'> 
<table border='1' bordercolor='#f39929' id='table1' cellspacing='1' width='240'> 
<tr> 
<td width='60' align='center'><font face='Verdana'><span style='font-size: 7pt'>Online</span></font></td> 
<td width='60' align='center'><font face='Verdana'><span style='font-size: 7pt'>Dün</span></font></td> 
<td width='60' align='center'><font face='Verdana'><span style='font-size: 7pt'>Bugün</span></font></td> 
<td width='60' align='center'><font face='Verdana'><span style='font-size: 7pt'>Toplam</span></font></td> 

</tr> 
<tr> 
<td width='60' align='center'> 
<font face='Verdana' style='font-size: 7pt'>";  
#---Online Ziyaretçi Sayısı-------------------------------------------------------------------- 
$ip = $_SERVER['REMOTE_ADDR'];  
$past = time()-150;  
mysql_query("DELETE FROM online WHERE time < $past");  
$result = mysql_query("SELECT time FROM online WHERE ip='$ip'");  
$time = time();  
if($row = mysql_fetch_array($result)){  
mysql_query("UPDATE online SET time='$time',ip='$ip' WHERE ip='$ip'"); 
}else{  
mysql_query("INSERT INTO online (ip,time) VALUES ('$ip','$time')") or die(mysql_error());  
}  
$result = mysql_query("SELECT ip FROM online");  
$aktifkac = mysql_num_rows($result); 
echo $aktifkac;  
#---Online Ziyaretçi Sayısı--------------------------------------------------------------------  
echo "</font> 
</td> 
<td width='60' align='center'> 
<font face='Verdana' style='font-size: 7pt'>";  
#---Dün Tekil Toplam Kaç Kişi Girmiş---------------------------------------------------------- 
$baslat =date(Y."-".m."-".d); 
$year =substr($baslat, 0,4); 
$month =substr($baslat, 5, 2); 
$day =substr($baslat, 8, 2); 
$bitis =date("Y-m-d", mktime(0, 0, 0, $month, $day-1, $year)); 
$sorgula = mysql_query("select tarih from ziyaret where tarih='$bitis'");  
$dunku = mysql_num_rows($sorgula); 
echo $dunku; 
#---Dün Tekil Toplam Kaç Kişi Girmiş----------------------------------------------------------  
echo "</font></td> 
<td width='60' align='center'> 
<font face='Verdana' style='font-size: 7pt'>";  
#---Bugün Tekil Toplam Kaç Kişi Girmiş--------------------------------------------------------  
$bugun = date("Y-m-d"); 
$sorgu = mysql_query("select tarih from ziyaret where tarih='$bugun'"); 
$bugunku = mysql_num_rows($sorgu); 
echo $bugunku;  
#---Bugün Tekil Toplam Kaç Kişi Girmiş--------------------------------------------------------  
echo "</font> 
</td> 
<td width='60' align='center'> 
<font face='Verdana' style='font-size: 7pt'>";  
#---Toplam Tekil Kaç Kişi Girmiş--------------------------------------------------------------  

$ipsi = $_SERVER['REMOTE_ADDR']; 
$tarih = date("Y-m-d"); 

$ipkontrol = mysql_query("select * from ziyaret where ip='$ipsi' order by id desc"); 
$yaz = mysql_fetch_assoc($ipkontrol); 
$vip = $yaz['ip']; 
$vtarih= $yaz['tarih']; 
$bak = mysql_num_rows($ipkontrol); 
if($bak>0){ //if- 
if($vtarih<$tarih){ 
$kayit_1 = mysql_query("insert into ziyaret (ip,tarih) values ('$ipsi','$tarih')"); 
}  
}//if- 
else{ 
$kayit_2 = mysql_query("insert into ziyaret (ip,tarih) values ('$ipsi','$tarih')"); 

$toplamne = mysql_query("select * from ziyaret"); 
$toplamziyaret = mysql_num_rows($toplamne); 
echo $toplamziyaret;  
#---Toplam Tekil Kaç Kişi Girmiş--------------------------------------------------------------  
echo "</font> 
</td> 
</tr> 
<tr> 
<td align='center' width='240' colspan='4'><font face='Verdana' style='font-size: 7pt'>IP $ipsi</font></td> 
</tr> 
<tr> 
<td align='center' width='240' colspan='4'><font face='Verdana' style='font-size: 7pt'>Design by <a href='mailto:ksabitk@hotmail.com' style='color:#FFFFFF;'>ksabitk</a></font></td> 
</tr> 
</table> 

</div>"; 

?> 




#--------------------------------------------------------------------------------#
#Aşağıdaki kodları db_baglan.php olarak kaydedin                               #  
#--------------------------------------------------------------------------------#

 

 

<?php 
#--Veritabanına Bağlantı Ayarları----------------------------------------------------------------------------------------------------- 
//Buraya Kendi MYSQL Bilgilerinizi Yazacaksınız 

@$db_name = "veritabanı adı"; #db adı 
@$db_user = "kullanıcı adı"; #db kullanıcı adı 
@$db_pass = "şifre"; #db kullanıcı şifresi 
@$db_host = "localhost"; #db server/sunucu/host adı 

@$eror1 = "<center><font face='Verdana' size='2' color='#333333'>...<u>MySQL</u> Bağlantısı Gerçekleştirilemedi...</font></center>"; 
@$eror2 = "<center><font face='Verdana' size='2' color='#333333'>...<u>Veritabanı</u> Seçimi Gerçekleştirilemedi...</font></center>"; 
@$baglan= mysql_connect($db_host,$db_user,$db_pass) or die ($eror1); 
@mysql_select_db($db_name,$baglan) or die ($eror2); 
#--Veritabanına Bağlantı Ayarları----------------------------------------------------------------------------------------------------- 
?>  




#--------------------------------------------------------------------------------#
#Aşağıdaki kodları sayac.sql olarak kaydedin                                     #  
#--------------------------------------------------------------------------------#

 

 

# phpMyAdmin SQL Dump 
# version 2.5.7-pl1 
# http://www.phpmyadmin.net 

# Sunucu: localhost 
# Çıktı Tarihi: Nisan 29, 2008 at 09:46 AM 
# Server sürümü: 5.0.16 
# PHP Sürümü: 4.4.1 
#  
# Veritabanı : `sayac` 
#  

# -------------------------------------------------------- 


# Tablo yapısı : `online` 

# Oluşturulma: Nisan 29, 2008 at 09:12 AM 
# Son güncellenme: Nisan 29, 2008 at 09:40 AM 


DROP TABLE IF EXISTS `online`; 
CREATE TABLE `online` ( 
`ip` varchar(50) NOT NULL, 
`time` varchar(50) NOT NULL 
) ENGINE=MyISAM DEFAULT CHARSET=latin1; 


# Tablo döküm verisi `online` 


INSERT DELAYED INTO `online` (`ip`, `time`) VALUES ('127.0.0.1', '1209451553'); 

# -------------------------------------------------------- 


# Tablo yapısı : `ziyaret` 

# Oluşturulma: Nisan 29, 2008 at 09:12 AM 
# Son güncellenme: Nisan 29, 2008 at 09:16 AM 


DROP TABLE IF EXISTS `ziyaret`; 
CREATE TABLE `ziyaret` ( 
`id` int(50) NOT NULL auto_increment, 
`ip` varchar(75) NOT NULL, 
`tarih` varchar(12) NOT NULL, 
PRIMARY KEY (`id`) 
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=34 ; 


# Tablo döküm verisi `ziyaret` 


INSERT DELAYED INTO `ziyaret` (`id`, `ip`, `tarih`) VALUES (1, '127.0.0.1', '2008-04-29'); 




#--------------------------------------------------------------------------------#
#Aşağıdaki kodları guvenlik.php olarak kaydedin                                 #  
#--------------------------------------------------------------------------------#

 

 

<?php 

/* Config Section */ 

$pass = 'demo'; // Sifreyi buraya giriniz... 
$cookiename = 'sascookie'; // Optional change: Cookie'ye isim veriniz.Basta geçerli olan sascookie dir. 
$expirytime = time()+3600; // Optional change: Sifrenin geçerli oldugu süre "saniye olarak". Basta geçerli olan 1 saatdir. 
$msg = 'Sifre Yanlis.'; // Optional change: parola yanlis mesajidir.basta geçerli olan "Sifre Yanlis"dir. 

/* End Config */ 

/* Logout Stuff - Sept 5, 2005 */ 

if (isset($_REQUEST['logout'])) { 
setcookie($cookiename,'',time() - 3600); // remove cookie/password 
if (substr($_SERVER['REQUEST_URI'],-12)=='?logout=true') { // if there is '?logout=true' in the URL 
$url=str_replace('?logout=true','',$_SERVER['REQUEST_URI']); // remove the string '?logout=true' from the URL 
header('Location: '.$url); // redirect the browser to original URL 

show_login_page(''); 
exit(); 


$logout_button='<form action="'.$_SERVER['REQUEST_URI'].'" method="post"><input type="submit" name="logout" value="Logout" /></form>'; 
$logout_text='<a href="'.$_SERVER['REQUEST_URI'].'?logout=true">Logout</a>'; 

/* End Logout Stuff */ 

/* FUNCTIONS */ 
$encrypt_pass=md5($pass); // encrypt password 

function setmycookie() { 
global $cookiename,$encrypt_pass,$expirytime; 
setcookie($cookiename,$encrypt_pass,$expirytime); 
}  

function show_login_page($msg) { 

?> 

<form action="" method="POST"> 
Şifre:&nbsp; 
<input type="password" name="password" size="20">&nbsp; 
<input type="submit" value="Giriş"> 
<input type="hidden" name="sub" value="sub"> 
</form> 
<?=$msg?> 

<?php } 

/* END FUNCTIONS */ 

$errormsg=''; 
if (substr($_SERVER['REQUEST_URI'],-7)!='sas.php') {// if someone tries to request sas.php 
if (isset($_POST['sub'])) { // if form has been submitted 
$submitted_pass=md5($_POST['password']); // encrypt submitted password 
if ($submitted_pass<>$encrypt_pass) { // if password is incorrect 
$errormsg=$msg; 
show_login_page($errormsg); 
exit(); 
} else { // if password is correct 
setmycookie(); 

} else { 
if (isset($_COOKIE[$cookiename])) { // if cookie isset 
if ($_COOKIE[$cookiename]==$encrypt_pass) { // if cookie is correct 
// do nothing 
} else { // if cookie is incorrect 
show_login_page($errormsg); 
exit(); 

} else { // if cookie is not set 
show_login_page($errormsg); 
exit(); 


} else { 
echo ''; 

?>  




#--------------------------------------------------------------------------------#
#Aşağıdaki kodları ust.php olarak kaydedin                                       #  
#--------------------------------------------------------------------------------#

 

 


<style> 
h2{ 
color:#000069; 

hr{ 
color:#000069; 

</style> 
<div align="center"> 

<table border="0" cellpadding="0" cellspacing="0" width="100%"> 
<tr> 
<td align="center"><h2>Ziyaretçi Kayıtları</h2></td> 
</tr> 
<tr> 
<td> 
<hr> 
</td> 
</tr> 
</table> 
<table border="0" cellpadding="0" cellspacing="0" width="600"> 
<tr> 
<td align="center"> 




#--------------------------------------------------------------------------------#
#Aşağıdaki kodları alt.php olarak kaydedin                                       #  
#--------------------------------------------------------------------------------#

 

 

</td> 
</tr></table> 
<table border="0" cellpadding="0" cellspacing="0" width="100%">  
<tr><td height="5"> 
<hr> 
</td></tr><tr><td align="center" height="10"> 


<font style="font-size:7pt;font-family:;Comic Sans MS;">Design by <a style="font-size:7pt;font-family:;Comic Sans MS;" href="mailto:ksabitk@hotmail.com">ksabitk</a></font> 
</font> 

</td></tr> 

</table></div> 




#--------------------------------------------------------------------------------#
#Aşağıdaki kodları kayit.php olarak kaydedin                                     #
#--------------------------------------------------------------------------------#

 

 

<? require('guvenlik.php');  
   include('ust.php');?> 
<html>  
<head>  
<title>Kayıtlar</title>  
<meta http-equiv="Content-Type" content="text/html; charset=windows-1254">  
<style> 
a{ 
text-decoration:none; 
font-family:verdana; 
font-size:10pt; 

.tablo1{ 
font-family:verdana; 
font-size:11pt; 
color:#000000; 
background-color:#FBCF37; 

.tablo2{ 
font-family:arial; 
font-size:10pt; 
color:#000000; 
font-weight:bold; 
background-color:#BAFEFB; 

</style> 
</head>  

<body>  

<?  
$say=0;  
$dbhost = "localhost";  
$dbuname = "kullanıcı adı";  
$dbpass = "şifre";  
$dbname = "veritabanı adı";  

//bağlan 
mysql_connect("$dbhost", "$dbuname", "$dbpass") || die ("mysql hatasi");  
mysql_select_db("$dbname") || die ("mysql bağlantısı başarısız");  

// Degiskenleri tanimlayalim  
$page = $_SERVER['PHP_SELF'];  
$limit = "250"; // Kaç kayitta bir sayfalama yapilacak ?  

/* URL üzerinden gelen $_GET[] dizisi içinde degisken olup olmadigina bak eger yoksa 1'e esitle */  
if(empty($_GET['paged'])) { $paged ="1"; }  
else{ $paged=$_GET['paged'];}  

/* Degiskenin numerik(rakamsal) bir deger olup olmadigina bak degilse düzeltip sayfaya bir daha yolla */  
//if(!is_numeric($_GET['paged'])) { header("location:$page?paged=1"); }  


//veriyi çek 
$query = ("select * from ziyaret order by id"); 

$id = $listele['id']; 
$kullaniciadi = $listele['tarih']; 
$cinsiyet = $listele['ip']; 


$girdi =mysql_query($query);  
$sayi =mysql_num_rows($girdi); // toplam mySQL kayit sayisi  
$kac_tane = $sayi / $limit; // Kaç sayfa olacak  

/* burasi önemli , sayfalama linklerini basarken toplam kayiti $limti degiskeninin içerigine bölüyoruz eger tam bölünmüyorsa sayfa sayisini bir arttiriyoruz.Böylece her kayit listeleniyor.*/  
$kac_tane=ceil($kac_tane);//bir yukarıya yuvarladık  


// Kayitlari yazdiralim ( son kayittan itibaren )  
$son = ($paged-1)*$limit; //burası çok güzel  
$query = "select * from ziyaret order by id limit $son,$limit";  
$veri = mysql_query ($query);  
while($cikart = mysql_fetch_array($veri)) {  


$id = $cikart['id'];  
$tarih = $cikart['tarih'];  
$ip = $cikart['ip'];  


if ($say%2)  
$renk='#BAFEFB';  
else  
$renk='#FBCF37';  
?>  
<div align="center"> 
<table border="0" cellpadding="0" cellspacing="0" width="350"> 
<tr class="tablo1"> 
<td width="80" align="center">Sayı</td> 
<td width="120" align="center">Tarih</td> 
<td width="150" align="left">İp</td> 
</tr>  
<tr class="tablo2"> 
<td width="80" align="center"><? echo $id; ?></td> 
<td width="120" align="center"><? echo $tarih; ?></td> 
<td width="150" align="left"><a target="_blank" href="http://ipnerde.sifavi.com/index.php?IP=<? echo $ip; ?>"><? echo $ip; ?></a></td> 
</tr> 
</table> 


<?  
$say++;  
}  
// Sayfalama linklerini ekrana yazdiralim  
for($i=1; $i <=$kac_tane; $i++) {  
if( $i==$paged)  

{echo " $i " ;}  
else {  
echo("<a href=$page?paged=$i>[$i]</a> - "); }  

}  

ob_end_flush(); //  
?>  
</div>  
</body>  
</html> 
<? include('alt.php');?> 




Nasıl kullanılır ?  
Sayaçımızın çalışması için
sayac.php ve db_baglan.php'yi ana dizinimize atmalı ve ziyaretçilerinizin sayılmasını istediğiniz sayfalara
<? include('sayac.php');?>  
betiğini yazarak çekmelisiniz, şayet alt dizinlerde kullanılacaksa   include('./sayac.php'); normal klasör adlarını vererek ana dizinden çekebilirsiniz.

Mysql
db_baglan.php ve kayit.php deki veri tabanı ayarlarını yapmalı
sayac.sql yi veritabanına yüklemelisiniz

Güvenlik
Ziyaretçi kayıtlarını listelerken herkesin görememesi için guvenlik.php ile şifrelenmiştir.
Yani bu sayfadaki şifreyi kendinize göre uyarlamalısınız.

Kayıtlar
guvenlik.php de belirlediğiniz şifre ile kayit.php ye girerek ziyaretçilerinizi giriş tarihine göre ip numaralarıyla görebiliriz.
Listelenen ip numaralarının üzerine tıklayarak konumunu görebilirsiniz.

Dikkat!
substr fonksiyonunu kullandığınız farklı bir kod parçası varsa sorun çıkaracaktır. 
 

Etiketler : ziyaretçi,sayaç,php,olusturma,fonksyon






Bu sayfa hakkında yorum ekle:
İsminiz:
Mesajın: