Nasıl form gönderme oranları ve PHP girişleri sınırı mı?

3 Cevap
  1. Nasıl bu kadar insan bir girişi daha her defadan dakika kullanamıyorum yapabilirim?

  2. Nasıl bir gönderme şey içine herhangi non-char/number karakter koymak yeteneği kaldırabilirim? Alfabe çalışır ve böylece numaralar olur, ancak +, -, vb) değil,?

3 Cevap

PHP oturumları kullanabilirsiniz. Ve sonra oturumu değerine karşı bir formu X saniyeden daha o olmuştur, daha fazla görmek için gönderilen her zaman kontrol edin. Örnek

if (!isset($_SESSION['last_submit']))
    $_SESSION['last_submit'] = time();

if (time()-$_SESSION['last_submit'] < 60)
    die('Post limit exceeded. Please wait at least 60 seconds');
else
    $_SESSION['last_submit'] = time();

Sen normal ifadeler kullanmak isteyeceksiniz. Bu soru sizin kapsam dışında olabilir nasıl çalıştığını anlayarak, acemi etiketli beri. Ama bu işlevi olmayan tüm harf ve rakam karakterleri şerit olacak:

$string = ereg_replace('[^A-Za-z0-9]','', $string);

Bu örnek:

$string = 'sdrw%@#-14345';
$string = ereg_replace('[^A-Za-z0-9]','', $string);
echo $string;

"sdrw14345" üretecek

"Şeyler bir kullanıcı oluşturmak" Limit çok kesin olmayan bir bilimdir: bir istek nereden geldiğini anlamaya çok, çok zor. Sen uzak kullanıcının IP adresini kullanabilirsiniz, ancak bir NAT arkasında kullanıcılar bir grup varsa, o zaman meşru isteklerini sınırlayan risk. Sen cookie (o çerez ayarlandığında eğer onlara teslim izin vermeyin, 1 dakika ile bir TTL bir cookie kurmak) ile bunu yapabilirsiniz, ancak (okuyun: kolay) mümkün sadece bu çerezi silmek için.

Bu yardımcı olur mu? Eğer IP veya çerez ya da kullanımı hakkında daha fazla bilgi ister misiniz?

İkinci soruya gelince, sen ... HTML ve JavaScript kullanarak bunu yapmak gerekir Ve bu online için birçok kaynak vardır: http://www.google.com/search?q=restrict+characters+javascript

PHP verileri geri döndüğünde tabii ki, son kullanıcı JavaScript devre dışı değil, bu yüzden doğrulamak isteyeceksiniz emin olamazsınız, bu hala geçerli ... bir şey gibi:

if (preg_match("[^a-zA-Z0-9]", $input)) {
    error("The input has invalid characters in it!");
}