Bundan önceki Yarim.GEN.TR alan ismimdeki bir çoğunuzun gördüğü ziyaretçi sayacımı sizlerle paylaşmak istiyorum. Bir çoğu arkadaşım ücretsiz sitelerden sayaç ekleyerek tıklama ile kendi sunucusuna bağlanması (reklam) sanıyor ve kaldırmak istiyor.Bende bunu yapmanıza gerek kalmayacak bir makale yazmak istiyorum 🙂 Artık herkezin kendisine öz kendi sunucusunda ücretsiz ve reklamsız çalıştıracak Günlük toplam hit’i site altında belirtecek 2 3 dosya ile kolay kurulumlu bir makale anlatmak istiyorum. Haydi bakalım başlayalım o zaman..
Aşağıdaki kodları sayac.php olarak kaydedin
[php]<?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:[email protected]’ style=’color:#FFFFFF;’>ksabitk</a></font></td>
</tr>
</table>
</div>";
?>  [/php]
Aşağıdaki kodları db_baglan.php olarak kaydedin
[php]<?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’);  [/code]Aşağıdaki kodları <strong>guvenlik.php</strong> olarak kaydedin
[php]<?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 ”;
}
?>[/php]
Aşağıdaki kodları ust.php olarak kaydedin
[php]<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">[/php]
Aşağıdaki kodları alt.php olarak kaydedin
[php]</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:[email protected]">yildirmaz.org</a></font>
</font>
</td></tr>
</table></div>[/php]
Aşağıdaki kodları kayit.php olarak kaydedin
[php]<? 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>
<td width="80" align="center">Sayı</td>
<td width="120" align="center">Tarih</td>
<td width="150" align="left">İp</td>
</tr>
<tr>
<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’);?>  [/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
[code]<? include(‘sayac.php’);?>[/code]
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.
Eğer yapamazsanız buraya sorunlarınızı sorabilirsiniz. Elimden geldiğince yardımcı olmaya çalışacağım.

5 YORUMLAR

  1. phpMyAdmin SQL Dump # version 2.5.7-pl1 # http://www.phpmyadmin.net # # Sunucu: localhost # Çikti Tarihi: Nisan 29, 2008 at 09:46 AM # Server sürümü: 5.0.16 # PHP Sürümü: 4.4.1 # # Veritabani : `sayac` # # ——————————————————– # # Tablo yapisi : `online` # # Olusturulma: 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 yapisi : `ziyaret` # # Olusturulma: 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');
    Böyle diyor bu beceremedim kurmayı yardım?

CEVAP VER

Please enter your comment!
Please enter your name here