Merhaba arkadaşlar,
detay.php adındaki sayfanın 5 ten fazla açılmasını engellemek istiyorum.
Her kullanıcı detay.php'yi 5 taneden fazla açtığında uyarı verecek şekilde nasıl yapılır?.
Sayfanın Fazla Açılmasını Engelleme.
17
●2.568
- 12-09-2008, 19:15:32
<?php if($_COOKIE['detay'] == "") { setcookie("detay", 1, time()+31536000, "/", ".domain.com"); } else { setcookie("detay", $_COOKIE['detay']+1, time()+31536000, "/", ".domain.com"); } if($_COOKIE['detay'] > 5) { echo "limit doldu."; exit(); } ?>cookie ile bu şekilde yapılabilir. - 13-09-2008, 00:19:44Eyvallah saol Bartuc, Hemen deneyeceğim.Bartuc adlı üyeden alıntı: mesajı görüntüle
Uzun zamandır yoktun hoşgeldin.
Önceden replemişim. - 13-09-2008, 23:37:50bu biraz olmadı, bartuc senin orda verdiğin time herhalde 1 sene
benim tam istediğim, ziyaretçi 5 sayfa açtığında, 6. sayfayı açınca dur desin. Ziyaretçi 6. ve 5. sayfayı kapatınca 5. sayfayı yine açsın yani tüm sayfalarını da kapattığında sitede yine detay bölümünü görebilsin.
Bu şekilde çerezlerini silene kadar dolaşamıyor.
Dediğim şekilde sanırım online IP kontrolü ile oluyor bu şekilde bir uygulama varmı?. - 14-09-2008, 00:10:22Üyeliği durdurulduSanı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..
- 14-09-2008, 00:38:56detay.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ğimguvenlik.php
<?php session_start(); $karakter = '012346789'; for($i=0; $i<5; $i++){ $yazi .= $karakter[rand(0,strlen($karakter)-1)]; } $_SESSION['guvenlik_kodu'] = $yazi; $img = imagecreate(45,15); $arkarenk = imagecolorallocate($img,255,255,255); $yazirenk = imagecolorallocate($img,0,0,0); imagefill($img, 0, 0, $arkarenk); imagestring($img, 60, 0, 0, $yazi, $yazirenk); header("Content-type: image/jpeg"); imagejpeg($img); imagedestroy($img, NULL, 100); ?>detay.php 5 kez açıldıktan sonra limit doluyor güvenlik kodu geliyor. Güvenlik kodunu doğru girip tamam derse kaldığı yerden devam ediyor. - 14-09-2008, 01:22:03Tşkler D3LLy evet aradığım olay buydu, konuyu doğru anlamışsın, malum yeni browserlarda sekme olayı olunca her kullanıcı 20 sayfa açıyor.D3LLy adlı üyeden alıntı: mesajı görüntüle
Şimdi scripti iyi bir optimize etmek için yeterli vaktimde yoktu bu tür uygulama kullanmak istedim.
Yalnız ErsaT hocanın uygulamayıda görünce bundan vaz geçtim
Belkide bunuda kullanırım ama ilerde işime yarayacak.
+Rep
ErsaT hocam tşkler döktürmüşsün herzamanki gibi.ErsaT adlı üyeden alıntı: mesajı görüntüle
Bu güvenlik kodu daha mantıklı geldi, en azından mysql inde yükünü hafiletecek.
Oyun öncesi js ile 15 saniye limit koyduk diye millet boyuna sekme açıyor
anlık 10 kişi oluyor ssh den bakıyorum 10 15 sayfa açan oluyor.
Daha önce rep vermişim olsa defalarca replerdim. - 14-09-2008, 01:31:03Eğ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. (:ßaron adlı üyeden alıntı: mesajı görüntüle
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.
