2009-08-15 5 views

Antwort

0

Wenn Sie das Formular über Ajax senden this ist eine ziemlich gute Ressource.

1

Ja. Lassen Sie die Formularverarbeitungsseite in einer Datenbank aufzeichnen, wie oft sie verwendet wurde, und lassen Sie das Formular deaktivieren, wenn x verwendet wird.

1

von verwendet x Höhe der Zeit Ich nehme an, Sie meinen tatsächlich vorgelegt x Höhe der Zeit. Sie könnten einen Sitzungszähler haben, der bei jeder Übergabe des Formulars inkrementiert wird und die Validierung nicht besteht, und weitere Weiterleitungsversuche verhindert, wenn das Limit erreicht ist.

0

Leider gibt es hier keine solide Methode. Der beste Weg wäre, einen Cookie zu speichern, aber natürlich können Cookies gelöscht werden. Sie könnten versuchen, eine andere eindeutige Zeichenfolge/ID zu erstellen, indem Sie (md5) ihre IP-Adresse mit ihrem Benutzeragenten (Browser usw.) kombinieren und diese dann in der Datenbank speichern, aber das wird wahrscheinlich einige Personen ablehnen abgelehnt.

2

Schnelle und schmutzige Lösung für PHP.

Jedesmal wenn sie eine Seite besuchen, erhöht sie den Zähler. Zu oft bedeutet die Seite die() s. Sie können diesen Code an einer Stelle einfügen, an der er nur ausgeführt wird, wenn jemand das Formular abschickt.

Es setzt die Zählung immer wieder zurück.

Bekannte Bugs: Clearing Cookies bricht es, Kekse ausbrechen bricht es.

<?php 

session_start(); 

if(!isset($_SESSION['count'])) 
{ 
    $_SESSION['count'] = 1; 
    $_SESSION['first'] = time(); 
} 
else 
{ 
    // Increase the Count 
    $_SESSION['count']++; 
    // Reset every so often 
    if($_SESSION['first'] < (time() - 500)) 
    { 
     $_SESSION['count'] = 1; 
     $_SESSION['first'] = time(); 
    } 
    // Die if they have viewed the page too many times 
    if($_SESSION['count'] > 100) 
    { 
     die("You have submitted to many times"); 
    } 
} 

Dies wird Ihnen eine Lösung pro Benutzer wollen gegeben. Wenn es sich um eine ganze Website handelt, einfach kommentieren und ich werde löschen.