seite aktualisieren

willimc

Mitglied
Hallo,
ich habe mir ein Forum mit My SQL und PHP geschrieben. Mein Problem ist nun, wenn man die Seite aktualisiert, wird der zuletzt eingetragene Beitrag nochmal in die Datenbank geschrieben. Das liegt daran, dass die Daten die ich über die Adressleiste übergebe beim aktualisieren erhalten bleiben. Es gibt so einen Befehl, header heißt der glaube ich womit man die seite nochmal aufrufen kann ohne die variablen zu übergeben, aber mir wurde mal gesagt, dass das sehr schlechter stiel ist. wie kann ich das besser lösen?
also Seite aktualisieren und dabei angeben, welche werte beim aktualisieren übergeben werden sollen.

Danke schonmal für eure antworten
Gruß
Timo
 
Vor jeglicher Ausgabe:
PHP:
header('Cache-Control: must-revalidate');

Oder du checkst vor dem Einfügen, ob ein identischer oder zu 99.9% ähnlicher Beitrag (User, Subforum-ID, Texteingabe, etc) bereits existiert, oder du führst nach dem Einfügen direkt ein redirect über HTTP durch:
PHP:
header('Location: /redirect/to/me');
die;

Oder du packst alle Sachen zusammen, denn das funktioniert ebenfalls ;)
 
Danke schonmal für deine Schnelle Antwort, bei mir funktioniert das noch nicht so richtig. Was bedeutet redirect? kann ich das so machen, das beim aktualisieren nur ganz bestimmte werte in der adressleiste übergeben werden? also nicht die gleich wie beim aufruf nochmal.
Bei den beiden header Befehlen weiß ich nicht was die bewirken. kannst mir das evtl nochmal schreiben? mit dem Beitrag prüfen müsste auf jeden fall gehen, aber da muss ich dann ja wieder eine schleife machen etc. und alle beiträge durchgehen warscheinlich. weil wenn ich nur auf den letzten prüfe, und zwischendrin schreibt jemand anderes rein ist das ja nicht mehr der letzte*G*
würde sich durch so eine schleifen bei vielen einträgen die aktualisierungszeit vergrößern? oder bekommt man da nix von mit?
 
Wenn ich dich wäre, würde ich mal die Möglichkeit betrachten, das Ganze mit einem Formular method="POST" an Stelle von method="GET" zu realisieren.

Ansonsten ist die Funktion header() der geschickteste Ansatz. Merke dir allerdings, dass vom PHP-Script vor dem Funktionsaufruf keinerlei Daten an den Browser gesendet werden dürfen. Andernfalls endet das in einem Fatal-Error.

Eine weitere Möglichkeit ist, dass du das Schreiben von Beiträgen für die aktuelle SessionID für sagen wir 20 Sekunden sperrst. Dann musst du nicht alle Beiträge auf deren Vorhandensein prüfen, sondern nur, ob der betreffende User in den letzten 20 Sekunden einen Beitrag abgeschickt hat.

Weiterführender Lesestoff: http://de.php.net/manual/de/function.header.php
 
Zurück