IP-Sperre bei einem SQL-Eintrag (Gästebuch, Forum, Komentar)

mzeem

Erfahrenes Mitglied
Hi Leute,
ich mede mich mal nach langer Zeit zurück.

Nach langer Suche im Forum, muss ich jetzt doch die Frage selbst stellen

Kann mir jemand helfen bei einer IP-Sperre, sodass man nicht direkt (meißt ausversehen) 2 z.B. Gästebucheinträge verfassen kann?

Ich habe das Problem bei meinen Kommentaren. Ich kommentiere und es werden 2 Einträge gemacht.

1. Einer mit meinem Kommentar.
2. Einer ohne Inhalt

MfG Sascha
 
Helfe immer gerne :).

Bei dem von dir genannten Beispiel müsste es aber schon reichen die Daten auf Inhalt zu überprüfen. Also den Eintrag nur machen wenn auch wirklich etwas eingegeben wurde.

Willst du die IP Sperre mit Datei oder Datenbank machen?
So eine IP Sperre ist ganz leicht:

Alle Einträge in der Liste die älter als N Sekunden sind löschen.
Überprüfen ob die IP schon in der Liste ist.
Wenn nicht dann den Eintrag machen und die IP in der Liste speichern.
 
Hach Programmieren macht spaß.:)
Als Testumgebung habe ich eine Tabelle namens "ipsperre" mit 2 Spalten gehabt.
"ip" als LongText
"zeit" als Int


Die Funktion benötigt eine bestehende Verbindung zur Datenbank und giebt True zurück wenn die IP bereits gesperrt ist.

Als Parameter will sie die zahl der Sekunden die eine Sperrung dauert.


PHP:
	Function IpGesperrt($SperrSekunden)
	{
		$QuerySuchen="SELECT * FROM `ipsperre` WHERE ip='".$_SERVER["REMOTE_ADDR"]."'";
		$QueryLoeschen="DELETE FROM `ipsperre` WHERE `zeit`<".(time()-$SperrSekunden);
		$QuerySpeichern="INSERT INTO `ipsperre` (`ip` ,`zeit`) VALUES ('".$_SERVER["REMOTE_ADDR"]."', ".time().");";
		mysql_query($QueryLoeschen);
		$Result=mysql_fetch_assoc(mysql_query($QuerySuchen));
		if($Result){return(True);}
		
		mysql_query($QuerySpeichern);
		return(False);
		
	}
 
Zurück