"einfache" spamm-sperre

blubber

Erfahrenes Mitglied
Hi,
ich möchte für mein Newsscript (besser gesagt den Kommentarbereich) eine Sperre einbauen, dass ein User meinetwegen nur alle 30 sekunden ein Kommentar posten kann. Momentan ist es nämlich so, dass jemand 100 mal auf "kommentar abschicken" klicken könnte, und dann auch 100 mal sein kommentar dranstehen würde.

Ich hoffe sowas ist "einfach" zu realisieren !? Kann mir deshalb bitte jemand ein paar Tips/Lösungsvorschläge schreiben? :)

bye
 
hmm

Jo, das hab ich auch gesehn, doch was muss ich da jetzt durch mein zeugs ersetzten?? wenn überhaupt??

PHP:
<?php
  // Speicherung der Daten in einer Datei
  function schreiben($datei,$mode){
    global $ip;
    $ip=getenv ("HTTP_X_FORWARDED_FOR");
    $fp = fopen($datei,$mode);
    $eintrag=$ip."|".time()."\n";
    fwrite($fp,$eintrag);
    fclose($fp);

  }
  function ip_sperre() {
    // Einstellungen
    global $ip;
    $ip=getenv ("HTTP_X_FORWARDED_FOR");
    $reloadlogdatei = "reload.txt";
    $anzahleintraege = 1000;
    $zeitlimit = 60; // in Sekunden

    // Prüft, ob Datei existiert => ansonsten Erstellen
    if(!file_exists($reloadlogdatei)) {
      $datei = fopen($reloadlogdatei,"w+");
      fclose($datei);
    }
    $fp = file($reloadlogdatei);
    $size = sizeof($fp);

    // Beschreibt die Datei, wenn Liste voll
    if($size >= $anzahleintraege){
      schreiben($reloadlogdatei,"w");
    // Prüft, ob eine IP in der Liste steht
    } else {
      for ($i=0;$i<$size;$i++) {
        $zeile = explode("|",$fp[$i]);
        // IP wird gefunden
        if ($zeile[0] == $ip AND $zeile[1] > (time()-$zeitlimit)){
          $ausgabe = true;
        // IP wird nicht gefunden
        } else  {
          $ausgabe = false;
        }
      }
      // Protokolliert die IP-Adresse (schreibt)
      schreiben($reloadlogdatei,"a+");
    }
    return $ausgabe;
  }

  // Hauptaufruf des Programms
  if(ip_sperre()==false) echo "Zugriff erlaubt";
  else echo "IP wurde gefunden";
?>

Oder ist für mich jetzt nurnoch der "// Hauptaufruf des Programms" relevant?
 
...

"hm hast dich im internet schon mal nach einem tutorial umgesehen?"

Das mach ich ja hiermit gerade :)

Nee, hab dieses Script zum laufen bekommen.
danke nochmals.

bye
 
Zurück