Mailinglisten-Archive |
> Von: "Andreas Altenburg" <altenburg_(at)_fup.de> > > ein kunde macht einen eintrag in die datenbank und erhält danach eine > bestätigungsseite. nun klickt er mit dem browser-button zurück oder macht > einen reload und prompt hab ich den eintrag doppelt. > > habe schon über alles nachgedacht: session, query string mit der zeit etc. > bloss, das alles hilft nichts beim button zurück. Wenn das Formular zum Eintragen von Daten vom Kunden aufgerufen wird, dann immer einen hidden-Tag mit dem aktuellen Timestamp einsetzen. <input type="hidden" name="crdate" value="<? echo time() ?>"> Wenn das Formular abgeschickt wird kann auf der PHP Seite 1.ein Select auf die Tabelle mit der Variablen $crdate erfolgen, ( Select aller Datensätze die den Timestamp = $crdate haben. Die Datensätze sollten deshalb immer mit dem Timestamp abgespeichert werden - in einer dafür vorgesehenen Spalte ) wenn jetzt ein Datensatz gefunden wurde hat der Kunde ein Reload ausgelöst oder hat auf den Back-Button geklickt. In diesem Fall wird jetzt kein insert ausgeführt. Wenn aber kein Datensatz gefunden wurde kann der Datensatzinsert ausgeführt werden. Wenn jetzt nochmal ein reload ausgeführt wird, wird ja wieder erst die Selektion über den Timestamp ausgeführt bevor der Insert erfolgt. --Steffen -- Steffen Sander - Internet/Intranet Softwareentwicklung CRS Computer Register Service GmbH - Ritterstr. 11 - 10969 Berlin mailto:s.sander_(at)_crs.de -Tel: +49-30-614 60 01 - Fax: +49-30-614 85 81 http://www.crs.de - http://www.markthalle.de - http://www.stadtnetz.net
php::bar PHP Wiki - Listenarchive