• 14-09-2008, 01:32:13
    #10
    D3LLy adlı üyeden alıntı: mesajı görüntüle
    Evet Session Daha Hafif Gelir akLıma geLmişti Ama.. Sayfayı 5 Defa yeniLerse süre doLar onda... yoksa ben de session yazardım :=)
    bence işine yaricak olan yine mysql ile yazdığımdır..
    İkisinide deneyeceğim artık, peki senin yazıdığın uygulamaya belirlediğim ip lere bu olayı yapmasın diğer tüm kullanıcılara yapsın onu nasıl yaparız.
  • 14-09-2008, 01:37:49
    #11
    Şu kısmı;
    if($_SESSION['detay_kontrol'] >=5){

    Şöyle yapacaksın, diğer arama motorlarını bu şekilde çoğaltabilirsin.
    if(($_SESSION['detay_kontrol'] >=5) and (!strpos($_SERVER['HTTP_USER_AGENT'], 'Googlebot'))){

    Bu haliyle google bot bu uyarıyı görmez. Ama yinede sen farklı alternatifler bulmaya çalış.
  • 14-09-2008, 01:40:22
    #12
    Üyeliği durduruldu
    ßaron adlı üyeden alıntı: mesajı görüntüle
    İkisinide deneyeceğim artık, peki senin yazıdığın uygulamaya belirlediğim ip lere bu olayı yapmasın diğer tüm kullanıcılara yapsın onu nasıl yaparız.
    Kodu Değiştirdim.. izinliipler diye bi tablo açık oraya da izin veridğin ip leri eklersen sorun kaLmaz..

    koLay gelsin..
  • 14-09-2008, 03:13:15
    #13
    ErsaT adlı üyeden alıntı: mesajı görüntüle
    Eğer sorun buysa farklı çözüm ara. Örneğin 5 oyunda reklam göstert 5 den sonraki oyunlarda reklam çıkmasın. Zaten reklamı görmemek için farklı sekmede sayfa açan ziyaretçi reklamada tıklamaz. (:
    Ben içerik çeken emek hırsızlarına karşı önlem diye düşünmüştüm.
    Bu haliyle arama motoru botları siteyi 5 sayfadan sonra gezemezler. Güvenlik kodu giremeyeceği için.
    Sorun o değil bekleme yapmamak için çok sayfa açıyorlar. Mysql şişiyor onu engellemek içindi.
    Doğru botlar giremeyecek hocam sizin forumda mesaj vardı onunla google bot'a sayfayı serbest bırakacağım o şekilde uygulayacağım.
    Edit: daha ben yazmadan yazmışsın .

    Saol D3LLy,
    İkinizede ayrı ayrı teşekkür ederim, emeğinize sağlık.
  • 14-09-2008, 13:06:07
    #14
    Üyeliği durduruldu
    ErsaT adlı üyeden alıntı: mesajı görüntüle
    detay.php
    <?php
    session_start();
    $_SESSION['detay_kontrol']++;
    if($_SESSION['detay_kontrol'] >=5){
    echo '<p>Limit aşıldı. İçeriği görmek için güvenlik kodunu yazıp butona tıklayınız.</p>';
    echo '<p><form action="'.$_SERVER['REQUEST_URI'].'" method="post"><img src="guvenlik.php"><br><input type="text" name="f_guvenlik"><input type="submit" value="Gönder"></form></p>';
    	if($_POST[f_guvenlik] != ''){
    		if($_POST[f_guvenlik] == $_SESSION[guvenlik_kodu]){
    			unset($_SESSION[detay_kontrol]);
    			header("Location: ".$_SERVER['REQUEST_URI']);
    		}
    	}
    exit();
    }
    ?>
    İçeriğim
    Ersat abi kusura bakma ama gözünden kaçmış sanırım.. bunu kullanırsa hep hata var dicek (:

    Session oluştuktan sonra Post ediLeni kontroL etmişsin.. yani her post işleminden önce guvenlink.php yeniden kod oluşturcak..

    <?php
    session_start();
    $_SESSION['detay_kontrol']++;
    	if($_POST[f_guvenlik] != ''){
    		if($_POST[f_guvenlik] == $_SESSION[guvenlik_kodu]){
    			unset($_SESSION[detay_kontrol]);
    			header("Location: ".$_SERVER['REQUEST_URI']);
    		}
    	}
    
    if($_SESSION['detay_kontrol'] >=5){
    echo '<p>Limit aşıldı. İçeriği görmek için güvenlik kodunu yazıp butona tıklayınız.</p>';
    echo '<p><form action="'.$_SERVER['REQUEST_URI'].'" method="post"><img src="guvenlik.php"><br><input type="text" name="f_guvenlik"><input type="submit" value="Gönder"></form></p>';
    
    exit();
    }
    ?>
    İçeriğim
    kullanılcaksa boyle kullanılmalı ..
  • 14-09-2008, 13:40:23
    #15
    D3LLy adlı üyeden alıntı: mesajı görüntüle
    Ersat abi kusura bakma ama gözünden kaçmış sanırım.. bunu kullanırsa hep hata var dicek (:
    Session oluştuktan sonra Post ediLeni kontroL etmişsin.. yani her post işleminden önce guvenlink.php yeniden kod oluşturcak.
    Farketmiyorki. if($_POST[f_guvenlik] != ''){ ile zaten postu kontrol ediyor. Ayrıca zaten session 5'i geçmezse güvenlik koduna gerek kalmıyor. Sessionu aşmazsa güvenlik koduna gerek kalmadığı için (if($_POST[f_guvenlik] != '')) bu sorguyuda boşu boşuna yapmamış oluyor. Sendeki her sayfa gösteriminde her ikisinide kontrol ediyor.
    Ayrıca dene istersen. İkiside çalışıyor.
  • 14-09-2008, 15:41:40
    #16
    D3LLy kullandım sorun çıkmadı, 5 sayfada güvenlik çıkıyor, kodları giriyorsun 5 hak daha tanınmış oluyor sonraki beş te yine güvenlik kodu soruyor. Gayet güzel çalışıyor.
  • 14-09-2008, 16:10:59
    #17
    Üyeliği durduruldu
    ßaron adlı üyeden alıntı: mesajı görüntüle
    D3LLy kullandım sorun çıkmadı, 5 sayfada güvenlik çıkıyor, kodları giriyorsun 5 hak daha tanınmış oluyor sonraki beş te yine güvenlik kodu soruyor. Gayet güzel çalışıyor.
    Ersat abi anLatınca AnLadım artı rep biLe verdim tmmdır (=
  • 03-05-2018, 13:21:55
    #18
    D3LLy adlı üyeden alıntı: mesajı görüntüle
    Sanırım 5 Adet Pencere demek istiosn dimi ?.


    Her Adrese Tıklanma için Belli Bi zaman aşımının Belirlenmesi lazım..

    Yazacağım Kod Doğru AnLamışsam İşine yarar... istediğin yeri dğeişirsin..

    Veritabanına bi tablo acman lazım..

    ziyaretcilimiti diye..

    içindeki alanlar..

    id | ip | adres | zaman -> sırasıyla INT (11) VARCHAR (30) VARHCAR (50) ve INT (11) olmalılar..


    <?php
    include ("db_baglanti.php"); //veritabanına bağlandık.
    $zamanasimi="30";   //saniye | her Pencere Kac Saniye Kayıtta tutulsun..
    $penceresayisi="5";
    $adres=$_SERVER['REQUEST_URI'];
    $ip=$_SERVER['REMOTE_ADDR'];
    $simdikizaman=time();
    $eklizaman=$simdikizaman+$zamanasimi;
    
    //Önceki Kayıtları Siliyoruz..
    mysql_query("DELETE FROM ziyaretcilimiti WHERE zaman<$time");
    
    //Gelen Ip kayıtta tutuyoruz..
    $izinliler=mysql_query("SELECT ip FROM izinliipler WHERE ip='$ip'");
    $izinliyse=mysql_num_rows($izinliler);
    
    if($izinliyse<1) {
    mysql_query("INSERT INTO ziyaretcilimiti (ip,adres,zaman) VALUES ('$ip',$adres,'$eklizaman')");}
    
    $sorgu="SELECT ip,adres,zaman FROM  ziyaretcilimiti WHERE ip='".$ip."' AND zaman>".$simdikizaman." AND adres='".$adres."'";
    $sor=mysql_query($sorgu);
    
    $say=mysql_num_rows($sor);
    
    if ($say>=$penceresayisi) {
    echo "<center>Lütfen Fazla Penceleri Kapatıp $zamanasimi Saniye Bekleyin..</center>";
    die ("day");
    }
    ?>
    Umarım İşine Yarar..
    burayı denedim ama çalışmadı bende yeni bir çözüm var mı arkadaşlar
    bana da böyle bir çözüm lazım kullanıcılar tek pencere açmalılar.