2011-02-28 13 views
7

Herhangi bir kullanıcı için işlevselliğe izin veren bir web sitem var ancak her kullanıcının yalnızca belirli bir süre kullanmasına izin verilir.Kullanıcının işlevselliğini, IP adresine göre kısıtlayın

Daha fazla ayrıntıya girmeme izin verin, "anonim/konuk" kullanıcımızın veritabanında yalnızca 24 saatte 3 kez giriş yapmasına izin verilir. Kullanıcıları bu girişimleri takip etmek, 3 denemeden sonra onları kısıtlamak ve 24 saat sonra sona erdirmek için IP'yi kullanmanın bir yolu var mı?

Web sitesi PHP'de oluşturulmuştur ancak bu işlev hangi dilde hizmet veriyorsa ben de ona açıkım.

DÜZENLEME: Bu fikir bir istemciden gelen

, onlar "stokçular" ürünlerini stoklanması bir listesi var ve onlar web sitesinin kullanıcılarına bu bilgiler kullanılabilir yapmak istiyorum. Bununla birlikte, rakiplerinin kendi sisteminden yararlanmalarını ve onu stokçularına "azarlama" istemiyor. Bu yüzden kısıtlama. Aynı ulaşmak için daha iyi bir yol önermek geçebilirse Böyle $ _SERVER küresel değişkeni kullanmak zorunda

Alkış, Dan

+1


aynı güvenlik duvarı arkasında birden fazla kişi aynı mesafede, örneğin birkaç öğrencileri misafir olarak sitenizi ziyaret ne olur düşündünüz mü:
http://www.php.net/manual/en/function.setcookie.php

daha iyi bir çözüm Bu filtre için oturumları kullanmaktır okul? Bu yaklaşımın, öğrencilerin çoğunun veritabanında bile bir kez bile arama yapmasını engellemesi olasıdır. – kojiro

+0

Lütfen, konukların sadece 24 saatte 3 kez aramalarına neden izin verildiğini açıklayınız. Eminim ki, SO üyeleri IP adreslerini kısıtlamaktan çok daha güzel çözümler sunabiliyorlar. –

+0

Soruyu güncelledim :) –

cevap

8

şaşırtıcı olurdu:

if ($_SERVER['REMOTE_ADDR'] == '127.0.0.1') { 
    // restrict 
} 

Ama Kojiro'nun notunu düşünmelisiniz: IP adresi ile kısıtlamak iyi bir fikir değildir.

Düzenleme: yapıcı olmayı.

Düşük seviyede yapmak istiyorsanız, tanımlama bilgilerini kullanabilirsiniz. Kullanıcının tarayıcısında saklanan bu değişkenler, kullanıcı çerezleri yerel olarak temizlerse, kısıtlamanızı geçersiz kılabilir. http://php.net/manual/en/session.examples.basic.php

İlgili konular