Seite 1 von 1

Formular vs. "Züruck"-Button!?

Verfasst: Mo 21. Mär 2005, 18:50
von matze
Hallo allerseits,

anbei meine extrem vereinfachte Variante meines Kontakt-Formulares.

... nun meine Fehler-Reproduktion:
1. Ich fülle das Formular aus und schicke es ab.
2. Danach wähle ich einen beliebigen anderen Menüpunkt meiner Website aus.
3. Mit dem "Zurück"-Button bzw. "Back"-Button will ich nun wieder zurück zum Formular, doch anstatt des Formulares erscheint eine Fehlerseite mit folgender Fehlermeldung:
Achtung: Seite ist nicht mehr gültig
Die angeforderte Seite wurde mit Hilfe von Informationen erstellt, die von Ihnen in einem Formular mitgeteilt wurden. Diese Seite ist nicht mehr verfügbar. Als Sicherheitsmaßnahme übermittelt Internet Explorer solche persönlichen Informationen nicht automatisch erneut.
Wenn ich dann wieder auf den "Zurück"-Button klicke, erreiche ich dann endlich wieder die Formularseite.

Wer kann mir helfen diese Fehlerseite zu umgehen?

Thanks,
matze


Code: Alles auswählen

<?php

/***********************************************
*
* MODUL: Kontakt-Formular für das Wörterbuch
*
************************************************/


if($senden == 1) // falls das Formular abgeschickt wurde, ...
{
    $an = redaktion@TEST.de;
    $betreff = "$new_betreff";
    $text = "$new_nachricht\n";
    $from = "From: $new_name<$new_mail>\n";
    $from .= "Bcc: $new_mail\n";

	if(mail($an,stripslashes($betreff),stripslashes($text),$from)) {
	    echo '<div>E-Mail wurde versandt!</div>';
	}
	else {
	    echo '<div>E-Mail konnte nicht versandt werden!</div>';
	}

} // end if senden == 1


if ($senden == "0" || $senden == "") {

	echo '<form action="'.$auth->url().'" method="post" name="kontakt">
    
	Ihr Name
    <input type="text" name="new_name" value="'.$new_name.'" size="30" maxlength="80">
   
    Ihre E-Mail
    <input type="text" name="new_mail" value="'.$new_mail.'" size="30" maxlength="80">

    Betreff
    <input type="text" name="new_betreff" value="'.$new_betreff.'" size="30" maxlength="120">

    Nachricht
    <textarea rows="10" cols="30" type="text" name="new_nachricht">'.strip_tags($new_nachricht).'</textarea>

    <input type="image" src="bilder/button_absenden.gif" alt="ABSENDEN"><input type="hidden" name="senden" value="1">

    </form>';

} // end if senden = 0

?>

Verfasst: Di 22. Mär 2005, 10:53
von emergence

Verfasst: Di 22. Mär 2005, 19:19
von matze
danke, funktioniert!
mit POST geht's überhaupt nicht, oder?
(wie wärs mit'nem externen skript?)

matze

Verfasst: Di 22. Mär 2005, 19:50
von HerrB
Datt eine hat mit dem anderen nix zu tun.

Der Browser merkt sich, dass zu einer Seite bereits Daten gesendet hat (POST). Soll nun die Seite aktualisiert werden, fragt er entweder "Sollen die Daten erneut gesendet werden?" oder es erscheint - wenn die Seite nicht ohne die Daten erstellt werden kann - die von Dir angegebene Fehlermeldung.

Bei Get holt sich die Seite die Daten - wird die Seite aktualisiert, ist das dem Browser egal (ist halt dann Sache der Seite, sich die Daten ggf. erneut zu holen) ...

Gruß
HerrB

Verfasst: Mi 23. Mär 2005, 11:20
von matze
der unterschied von GET und POST ist mir prinzipiell schon geläufig ...

ich frage nur, weil ich auf meinem lokalen server auch noch ein anderes - komplett selbst gestricktes - system laufen hab, wo das ganze auch mit POST funktioniert!? ... und dort wird halt die formularauswertung komplett über ein externes skript geregelt.

Verfasst: Mi 23. Mär 2005, 17:17
von matze
Ahh, also mit POST gehts auch!
Dann darf man das Formular allerdings nicht an die selbe Seite senden [[ action="'.$auth->url().'" ]].
Wenn man alles über eine externe Datei oder eine andere Seite laufen lässt, klappt's auch mit dem "Zurück"-Button!

... aber mit GET kann man natürlich alles in ein Modul packen!

Hm, gar nicht so leicht, die Formular-Verarbeitung! ;-)

matze