function check_user($remodeAddr, $strDate) {
$result = mysql_query("SELECT COUNT(strIP), id FROM _COUNTER WHERE strIP = '{$remodeAddr}' AND strDate = '{$strDate}'");
if($result) {
$row = mysql_fetch_array($result);
return ((int)$row[0] > 0 ? (int)$row[1] : 0);
mysql_free_result($result);
}
}
function counter() {
$strDate = Date('Y-m-d');
$strIP = $_SERVER['REMOTE_ADDR'];
/* Saydırma ve ekleme işlemi */
$ret_val = check_user($strIP, $strDate);
if($ret_val == 0)
$result = mysql_query("INSERT INTO _COUNTER (strDate, strIP) VALUES ('{$strDate}', '{$strIP}');");
else
$result = mysql_query("UPDATE _COUNTER SET iVisit = iVisit + 1 WHERE id = {$ret_val}");
/* Sayaç bilgileri */
$result = mysql_query("SELECT COUNT(strIP), SUM(iVisit) FROM _COUNTER WHERE strDate = '{$strDate}'");
if($result) {
$row = mysql_fetch_array($result);
$iVisits = number_format((int)$row[0]);
$iViews = number_format((int)$row[1]);
return "Bugün içerisinde toplam {$iVisits} adet tekil, {$iViews} adet çoğul ziyaretçi mevcut.";
mysql_free_result($result);
}
}
echo counter(); // Sayaç bilgilerini ekrana yansıtıyor, ve saydırma işlemi yapıyor.Sizin bu kod içerisinde tek yapmanız gereken, IP yerine REF bilgisi girmeniz.
$strIP = mysql_real_escape_string($_GET['ref']);
http://www.test.com/index.php?ref=Nero
şeklinde gelirse Nero refine saydırma yapacaktır, eğer siteye göre yapmak istiyorsanız.
if(isset($_SERVER['HTTP_REFERER']) && !empty($_SERVER['HTTP_REFERER']))
$strIP = $_SERVER['HTTP_REFERER'];
else
return;
ayrıca _COUNTER tablosundaki strIP uzunluğunu değiştirmeniz gerekir.
buda tablo için mysql sorgusu
CREATE TABLE IF NOT EXISTS `_COUNTER` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`strDate` date NOT NULL,
`strIP` varchar(16) NOT NULL,
`iVisit` int(11) DEFAULT '1',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=2 ;