Offtopic: Refresh nach POST

Hier können Probleme und alles andere in Deutscher Sprache gelöst werden.
Post Reply
gimmel
Regular
Posts: 118
Joined: Tue Jul 25, 2006 2:44 pm
Location: Quickborn/Germany
Contact:

Offtopic: Refresh nach POST

Post 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…
garvinhicking
Core Developer
Posts: 30022
Joined: Tue Sep 16, 2003 9:45 pm
Location: Cologne, Germany
Contact:

Re: Offtopic: Refresh nach POST

Post 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
# Garvin Hicking (s9y Developer)
# Did I help you? Consider making me happy: http://wishes.garv.in/
# or use my PayPal account "paypal {at} supergarv (dot) de"
# My "other" hobby: http://flickr.garv.in/
gimmel
Regular
Posts: 118
Joined: Tue Jul 25, 2006 2:44 pm
Location: Quickborn/Germany
Contact:

Re: Offtopic: Refresh nach POST

Post 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!
Post Reply