Formularcheck + neue Seite

Robert Steichele

Erfahrenes Mitglied
Ich habe im Formular als Ziel das Formular selbst angegeben, damit ich die eingegebenen Variablen überprüfen und gegebenenfalls eine Fehlermeldung ausgeben kann.
Allerdings kann ich dadurch keine zweite Seite aufrufen, in der ich z.B. eine Bestätigung zeigen kann, dass das Formular versendet wurde.

Was gibt es da für Möglichkeiten?
 
Hi!

Entweder du erstellst die "Erfolgreich"-Seite ebenfalls durch das gleiche Script oder du lässt - bevor irgendetwas ausgegeben wurde - per
PHP:
header('Location: http : / /www . deineseite . tld / antwort.html');
zu einer anderen Seite weiterleiten. Die URL muss natürlich ohne Leerzeichen geschrieben werden!

Mamphil
 
Außer du nimmst zum checken der Formularfelder Java Skript her.

Wenn du das nicht willst hast du nur die Möglichkeiten welche
schon genannt wurden.

mfg
 
im <form> gibts du einfach als 'action' die datei an z.b. form.php oder halt mit $_SERVER['PHP_SELF'] und hängst eine "check" anweisung dran.
z.b. action="form.php?cmd=check"

denn machste in der selben datei paar schöne if anweisungen :-)

PHP:
if (isset($_REQUEST['cmd']) && $_REQUEST['cmd'] == 'check')  {
     echo 'Bla Blub email weg';
} else {
     // Hier kommt der Form hin also die inputs etc.
}
 
Das mit dem Header funktioniert irgendwie nicht.

Wo genau muß ich den Code denn eintragen?

Mein Code zum versenden ist folgender, und da das Öffnen der anderen Seite ebenfalls nur geschehen soll, wenn alle Felder korrekt ausgefüllt sind, muß der Code dann wohl auch in die IF-Abfrage mit rein, oder?

if ($a == "OK" && $b == "OK" && $c =="OK" && $d =="OK" && $e == "OK" && $f == "OK")
{ mail("aa@aa.de", "TEST Service-Anfrage PC TEST", $message2, "From:$name");
mail($email, "TEST Eingang Ihrer Service-Anfrage PC TEST", $message3, "From:aa\nErrors-To:aa@aa.de");
}
?>

Im Prinzip benötige ich nachdem die beiden E-Mail versendet wurden eine Anweisung (noch in der IF-Abfrage) die mir einfach eine andere Datei z.B. danke.php öffnet.
 
Zuletzt bearbeitet:
sorry aber das ist doch kompletter quatsch!
wozu willst du eine zweite datei machen? ist doch ein einziger script. es ist vöpllig sinnlos eine weitere datei zu erstellen wo drinn steht: danke!
mein code aus dem vorigen post ist am idealsten. da packst du alles rein was in danke.php ist also in den if bereich...
denn erstellst du halt eine weitere if anweisung inder gechecht wird ob alles korrekt ist. wenn ja schiuckt er die email weg und schreibt Danke dahin oder so...
wenn fehler drinne siund gibt er einach die fehler aus. das sind ein paar if bedingungen und das wars. simpler und konfortabler geht es nun wirklich nicht
 
Das kommt von meinem Chef, er hätte gerne, dass eine extra Seite aufgerufen wird, die dann entsprechend gestaltet ist.
Egal, was besser ist, der Chef will es halt.
 
Original geschrieben von Robert Steichele
extra Seite aufgerufen wird, die dann entsprechend gestaltet ist.
Du brauchst nur die verschiedenen Seitengestaltungen innerhalb der jeweiligen if-Bereiche schreiben.

Oder wesentlich eleganter:
Bau Dir die 2 Seiten als extra Dateien und include sie.
 
Beim Include oder alles in einer Datei gibt es trotzdem noch ein Problem:

Wenn der Benutzer die Seite noch einmal neu lädt (z. B. über den "Aktualisieren" / "Reload"-Button im Browser) werden alle Formularinhalte ein zweites mal gesendet und die Mail wird noch mal verschickt.

Beim Relocate über den header geht das nicht.

Mamphil
 
Zurück