• 29-05-2010, 21:36:04
    #1
    r10 sakinleri merhabalar;
    Benim bir problemim var yardımcı olursanız sevinirim.

    Benim örnegin r10.net diye bir sitem var bu r10.net/index.php gelen ziyaretçinin index.php de kaç dakika kaldıgını nasıl bulabilirim.

    İkinci Aşama Süreyi bulduktan sonra ip.txt nasıl kaydedebilirim.


    $file = fopen ( 'ip.txt' , 'a+' ); 
    fwrite ( $file , $_SERVER [ 'REMOTE_ADDR' ]. "\r\n") ;
    Kısacası ben bu koda nasıl time ekleyebilirim.Yani sitede 5 dakika kaldıysa ip.txt'e ipsini yazsın.
  • 29-05-2010, 21:48:52
    #2
    ajax ile sayfa açık kaldığı sürece belirli aralıklarda bilgi gönderip getireceksin

    ve ipleri bir dizide yada veritabanında tutman gerekiyor çünki aynı ipye ikinci kez loglama yapmayacak giriş süresini değiştireceksin.

    $_SESSION[giris] = date('U');
    $süre = date('U') - $SESSION[giris]; //toplam online kaldığı süre sn olarak
  • 29-05-2010, 21:58:52
    #3
    MaviTm adlı üyeden alıntı: mesajı görüntüle
    ajax ile sayfa açık kaldığı sürece belirli aralıklarda bilgi gönderip getireceksin

    ve ipleri bir dizide yada veritabanında tutman gerekiyor çünki aynı ipye ikinci kez loglama yapmayacak giriş süresini değiştireceksin.

    $_SESSION[giris] = date('U');
    $süre = date('U') - $SESSION[giris]; //toplam online kaldığı süre sn olarak
    Üstat Eline sağlıkta ben tam mevzuyu anlayamadım..
    Ben aşagıdaki if kısmına ne yazmam gerekiyorki ip yi ip.txt kaydetsin


    <?
    $_SESSION[giris] = date('U');
    $sure = date('U') - $SESSION[giris];
    
    
    
    
    if ($sure = NE YAZMAM GEREKIYOR ) {
    
    
    $file = fopen ( 'ip.txt' , 'a+' );
    fwrite ( $file , $_SERVER [ 'REMOTE_ADDR' ]. "\r\n") ;
    }
    
    
    
    ?>
  • 29-05-2010, 23:43:35
    #4
    $sure sana kişinin kaç saniye sitende durduğunu belirtecek
    atıyorum sen sitende 5 dk ve fazla kalmayan ziyaretcilerin bilgisini almak istemiyorsan

    if($sure >= 300){
    //işlem yap
    }

    bu şekilde kullanabilirsin 300 sn 5 dakika yapıyor ona göre heseplarsın.
    ve bir ajax uygulaması yapıp he 10 yada 20 saniyede bir istek gönderirsen güncel tutarsın

    eğer txt ye yazmak istiyorsan bu biraz kasıntılı olur günlük txt nin içeriğini boşaltmanı tavsiye ederim.

    ve txt te tutacaksan verileri gene bir dizi halinde tutup aynı ipdeki bir kişiyi birden fazla yazdırmamış olursun

    $oku = unserialize(file_get_contents("dosya.txt")); //unserialize ile dizi olarak aliyorum

    $oku[$ip] = $sure;
    $yaz = serialize($oku); //dizi olarak alabilmem için serialize yapiyorum
    //içeriği kopile alıp kompile yazıyorum bu yüzden fopen da w parametresi kullan
  • 30-05-2010, 00:09:46
    #5
    Üstat sıkıntım şu ben bi yerde yanlışmı yapıyorum bilmiyorum ama..

    $_SESSION[giris] = date('U');
    $sure = date('U') - $SESSION[giris]; //toplam online kaldığı süre sn olarak
    
    
    echo $sure;
    Bunun çıktısı "1275167297" gibi bişey bu dogru bilgimi.
  • 30-05-2010, 00:26:07
    #6
    çıkarma işlemini parantez içerisine alırsan 0 değeri vericektir
    ben tüm hareketleri yazayım sana

    jquery.js sistemine dahil et

    js kodun
    <script type="text/javascript" src="/jquery.js"></script>
    <script type="text/javascript">
    <!--
    function sureHesap(){ 
    	var sc = 'sure=kontrol'; //guvenlik icin rasgele bir session degerle koruyabilirsin
    	$.ajax({type: 'POST', url: 'sure.php', data: sc, success: function(sure) {$('#sureHesap').html(sure);}});	
    }
    setTimeout(sureHesap(),100000); //10000 = 1 saniye
    //-->
    </script>

    Sitene eklemen gereken kod
    <?php
    //ziyaretci ilk girdiğindeki zamani aliyorum
    $_SESSION['giris'] = date('U');
    echo '<div id="sureHesap"><!-- işlem --></div>'
    ?>
    ajax isteği göndereceğin sure.php dosyası içeriği
    <?php
    //sure.php dosyasi kodu
    
    $ip = $_SERVER['REMOTE_ADDR'];
    $sure = (date('U') - $_SESSION['giris']);
    
    if($sure >= 300){
    	$oku = unserialize(file_get_contents("ip.txt"));
    	$oku[$ip] = $sure;
    	$yaz = serialize($oku);	
    
    $file = fopen ( 'ip.txt' , 'w' );
    if($file){//dosya acildi ise
    	if(fputs($file,$yaz)){
    		//yazma basarili
    	}else {
    		//yazma basarisiz chmod kontrol et
    	}
    }	
    fclose($file);
    }
    
    
    ?>
    deneme fırsatım olmadı kodu biraz inceleyip kullanabilirsin hata verirse yazarsın bakarız

    edit: süre kontrolunu değiştirdim