Teil von SELFHTML Forum Teil von SELFHTML Forumsarchiv Teil von 2007 Teil von Juni

SELFHTML Forumsarchiv
Doppelte Einträge verhindern (z.B. beim Aktualisieren)

Informationsseite
  1. Seite (PHP) Doppelte Einträge verhindern (z.B. beim Aktualisieren) von Pete, 30. 06. 2007, 11:10
nach unten

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

Die folgende Nachricht zum Thema stammt von: Pete, 30. 06. 2007, 11:10

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!

nach obennach unten

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

Die folgende Nachricht zum Thema stammt von: Felix Riesterer, 30. 06. 2007, 12:05

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:)

nach obennach unten

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

Die folgende Nachricht zum Thema stammt von: Tom, 30. 06. 2007, 18:35

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

nach oben
Teil von SELFHTML Forum Teil von SELFHTML Forumsarchiv Teil von 2007 Teil von Juni

© 1998-2006 Seite Impressum, Software: Classic Forum