• 19-09-2014, 09:43:28
    #1
    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.
  • 19-09-2014, 10:06:37
    #2
    Üyeliği durduruldu
    Merhaba 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
    #3
    bayraktar adlı üyeden alıntı: mesajı görüntüle
    Merhaba 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'];
    }
    Çok teşekkürler. Analytics tam işimi görmüyor hocam. Şuan sitede ekli zaten.

    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.
  • 19-09-2014, 14:10:01
    #4
    http refereri sadece ilk girişde bir sessiona yazın örnek

    if(!isset($_SESSION['referans']))
    {
    $_SESSION['referans'] = $_SERVER['HTTP_REFERER'];
    }

    kayıt sırasındada sessiondaki referans verisini almış olursun bu sayede siteye ilk geldiği referans adresi almış olur
  • 21-09-2014, 02:52:47
    #5
    	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 ;