Spam verhindern

bspainkf36

Erfahrenes Mitglied
Hey,
ich wollte das Spam in meinem Gästebuch verhindern und habe mir gedacht eine Session zu setzen, die die Ip und die Timestamp enthält. Folgenden Code habe ich mir überlegt, jedoch wenn ich auf den Inhalt der Session zugreifen möchte, bekomme ich eine "Undefined index" ... hier mein Code:

Code:
$time=time();
if((isset($_POST["Submit"]) && !isset($_SESSION["$_SERVER[REMOTE_ADDR]"])) || 
   (isset($_POST["Submit"]) && ($time-$_SESSION["$_SERVER[REMOTE_ADDR]"] >= 30))){

//CODE .....

}
else
	$fehler=NULL;

Danke für die Hilfe.
Viele Grüße Kon
 
Hai!

Also, du speicherst dein Gästebuch eintrag in einer äquivalenten Datenbanktabelle mit folgenden Spalten

ID | Text | Name | eMail | Homepage | timestamp | IP


im Timestamp speicherste den Timestamp des eintrages und bei IP die IP des Gästebuchschreibers.
und wenn ein Benutzer einen Beitrag schreiben will, dann guggste in der DB nach, ob die IP adresse des Users gleich einer IP aus der Datenbanktabelle "gästebuch" ist.
Wichtig sind die nur die Beiträge, die nicht älter als x Stunden sind (x kannst du dir aussuchen).

Damit verlangst du vom User sich immer wieder neu einzuwählen, damit der Benutzer nicht spamen kann!

Ich hoffe s ist verständlich =)
 
Goole doch einfach mal!

oder probier einfach ne simple reloadsperre wie pornex es beschrieben hat:

PHP:
$lvote=fopen("lastip.txt","r"); // öffnet die Textdatei lastip.txt
$lv=fgets($lvote,255);
fclose($lvote);
$ip=getenv("REMOTE_ADDR"); // ermittel die IP vom Besucher
if ($lv!=$ip) // gleicht IP Adresse ab, die in der Textdatei steht
{ 

eintrag in die Datenbank schreiben
 
Hey,
danke für den TIpp ;) Aber ich hab mir doch da schon etwas bei gedacht und habe gefragen, ob mir da jemand einen denkanstoß geben kann. Eine Reloadsprerre mit einer txt ist doch viel zu aufwending, wozu, wenn man mysql hat - sicher ist ein Dateisystemzugriff auch noch langsamer als eine DB-Abfrage.
 
Ich denke nordi hat das nur mit einer Textdatei gemacht, damit es besser verständlich ist!

Natürlich sollteste das mit einer Mysql Tabelle lösen - nicht zuletzt auch, weil du dann zu jedem gbook eintrag die IP hast und nicht nur die letzte =)
 
Danke pornex :-)

Ne, das mit der Textdatei kannste doch ganz einfach umschreiben.
Nimmst wieder die gleiche Funktion wie oben genannt um die IP-Adresse zu ermitteln und fügst dann noch ne Spalte in deine Gästebuchtabelle ein mit den Namen "ip" und dann schreibste die per INSERT da rein. Nachher kannste ja wieder abgleichen. Falls identisch: irgendeine Nachricht ausgeben, falls nicht Gästebucheintrag zulassen.
 
Zurück