Pete: Doppelte Einträge verhindern (z.B. beim Aktualisieren)

Hi,
Zuerst: Ich weiß das es über das Thema schon viele Fragen gibt. Ich möchte mich nur einmal informieren was die beste Methode ist.

Bsp.: Ich habe eine Kommentarfunktion. Nun möchte ich, das der Eintrag, selbst wenn der Benutzer 5 mal auf Senden bzw. Aktualisieren klickt nur einmal in die Datenbank eingefügt wird.

Wie mache ich das jetzt am besten?

Bisher habe ich es immer so gemacht:

  
  
...  
<input type="hidden" name="uw" value="time()">  
...  
  
function no_reload()  
{  
  $gleichheit = false;  
  if (isset($_POST["uw"])) {  
    $datei = "unique.txt";  
    $fp = fopen($datei, "r+");  
    $aw = fgets($fp, 30);  
    if ($aw == $_POST["uw"]) {  
      $gleichheit = true;  
    }  
    rewind($fp);  
    fputs($fp, $_POST["uw"]);  
    fclose($fp);  
  }  
return $gleichheit;  
}

Für diese Methode muss man jedoch immer extra eine txt Datei erstellen.

Wie prüft ihr so etwas? Ich würde es gerne ohne eine txt Datei machen.

Danke!

  1. Lieber Pete,

    Du möchtest Dich mit Sessions beschäftigen. Damit ist es möglich, einen Benutzer wieder zu erkennen und ihm Werte zuzuordnen. Beispielsweise könntest Du ihm eine Art Ticket geben (irgend ein zufällig generierter Wert). Wenn dieses Ticket eingelöst wurde, dann wurden seine Eingaben angenommen und das Ticket verfällt. Weitere Eingaben mit diesem Ticket werden dann abgewiesen.

    Liebe Grüße aus Ellwangen,

    Felix Riesterer.

    --
    ie:% br:> fl:| va:) ls:[ fo:) rl:° n4:? de:> ss:| ch:? js:) mo:} zu:)
  2. Hello,

    [siehe Felix, oder... ]

    für einfache reicht es auch, dem Formualr beim Ausliefern ein Zertifikat mitzuliefern, z.B. beim Apache-Server

    $_[SERVER['UNIQUE_ID']

    Ist aber auch nicht in allen Installationen vorhanden, vielleicht gehört ein Modul dazu. Das habe ich noch nicht überprüft...

    Und diese ID speicherst Du dann mit ab in einer Spalte, die ebenfalls als UNIQUE gekennzeichnet ist. Dann ist zumindest Multipost mit demselben Formular-Dokument nicht möglich.
    Dass nun jemand das Formular mehrfach aufruft, ist dadurch nicht abgefangen.

    Harzliche Grüße vom Berg
    http://www.annerschbarrich.de

    Tom

    --
    Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
    Nur selber lernen macht schlau