Arkadaşlar herkese merhaba,
Php ile sayaç yapmam gerekiyor. Ancak sadece hiti sayan bir sayaç olmayacak. Şöyle ki birkaç siteye banner reklam verdiniz diyelim. Her reklamın da bir kodu var. O sitelerden gelen ziyaretçinin sitenize üye olup olmadığını kontrol etmem gerekiyor. Yani aslında veritabanına üye kaydı girildi mi girildiyse de hangi siteden kaç ziyaretçi siteye gelip üye oldu ?
Bunu nasıl yapabilirim. Yanıtlar için şimdiden teşekkürler.
Php ile hangi siteden kaç kişinin geldiğini öğrenebilme
4
●1.109
- 19-09-2014, 10:06:37Üyeliği durdurulduMerhaba Arkadaşlar,
Burada kullanmanız gereken en iyi sistem Google Analytics
php ile hazırlayacağınız sistem den daha iyi verim alırsınız..
veya reklam verdiğiniz siteleri takip etmek istiyorsanız verdiğiniz reklam linklerinin ardına
Örnek :
?sclick=filanca_site gibi yazar ve bunu alırsanız üye ile birlikte veritabanına yazarsanız nereden kim geldi görebilirsiniz.
@$Deger = $_GET["sclick"]; @$_SESSION["nereden_geldi"] = $Deger; // gibi örnek
Ama birde şu var rast gele kimin nereden geldiğini görmek istersen şu satırları kullanabilirsin..
if ( isset ( $_SERVER['HTTP_REFERER'] ) ) { // domain adresini alıyoruz preg_match('@^(?:http://)?([^/]+)@i', $_SERVER['HTTP_REFERER'], $matches); $referer = $matches[1]; // Ziyaretçinin ip adresini alıyoruz $ip = $_SERVER['REMOTE_ADDR']; // İstek yapılan sayfanın adresini alıyoruz $sayfa_url =$_SERVER['REQUEST_URI']; } - 19-09-2014, 11:55:22Çok teşekkürler. Analytics tam işimi görmüyor hocam. Şuan sitede ekli zaten.bayraktar adlı üyeden alıntı: mesajı görüntüle
Bana veritabanına kaydedilen üyenin nereden geldiğini bulmak lazım.
@$Deger = $_GET["sclick"]; @$_SESSION["nereden_geldi"] = $Deger; // gibi örnek
Şu attığınız kod kafamda canlandırdı birşeyler. - 21-09-2014, 02:52:47
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 ;