Page 1 of 1

Offtopic: Refresh nach POST

Posted: Thu Sep 03, 2009 12:49 pm
by gimmel
Ich arbeite gerade an einer Online-Datenbank, bei der Daten per POST gesendet werden. Wenn ich nach dem Senden der Daten den Reload-Button drücke, kommt eine Meldung „Möchten Sie dieses Formular wirklich nochmals absenden?“. Eine logische Meldung, denn die gleiche Seite wird mit den gleichen POST-Daten aufgerufen und die Daten werden erneut in die Datenbank geschrieben.

Bei Serendipity wird das sehr elegant umschifft: Wenn ich einen Kommentar abgesendet habe, erscheint die gleiche Kommentarseite wieder, ein Reload erzeugt aber keine Meldung und es werden offensichtlich keine POST-Daten gesendet.

Leider konnte ich in der ellenlangen index.php von Serendipity nicht herausfinden, was der POST-Aufruf von /index.php?url=archives/xxx-titel.html#feedback nun anders macht.

Kann mir jemand auf die Sprünge helfen? Google wollte mir nicht helfen…

Re: Offtopic: Refresh nach POST

Posted: Thu Sep 03, 2009 6:14 pm
by garvinhicking
Hi!

Der #feedback Aufruf ist ein GET Request! Der entscheid durch einen HTTP-Redirect, es wird also nicht nochmal ein POST ausgelöst.

Grüße,
Garvin

Re: Offtopic: Refresh nach POST

Posted: Thu Sep 03, 2009 8:17 pm
by gimmel
Im Quellcode steht doch:

Code: Select all

<form id="serendipity_comment_CommentForm" action="/index.php?url=archives/xxxx-title.html#feedback" method="post">
Das ist doch ein method="post", oder nicht…?

Ist aber auch wurscht, der entscheidende Hinweis war der Redirect und der klappt mit einem POST genauso gut:

Code: Select all

header ("Location: http://www.domain.de/")
Ich habe mein Problem auf jeden Fall gelöst.
Der POST-Submit zeigt auf die index.php, dort werden die Daten in die Datenbank geschrieben und danach wird die index.php mit header ("Location: http://www.domain.de/index.php") wieder selbst aufgerufen, dann natürlich ohne POST-Daten.

Dafür habe ich heute stundenlang probiert. Ich hätte dich gleich fragen sollen, Garvin.
Vielen Dank!