Vom PHP Script aus htm-Datei aufrufen

Liebe/-r Experte/-in,

ich habe mir ein Kontaktformular als kontakt.htm gebastelt.

In dieser Datei habe ich bei „action“ auf die Datei kontakt.php verwiesen.

Wenn ich jetzt eine Anfrage versende, dann erscheint eione weiße Seite mit der Aufschrift „Ihre Nachricht wurde erfolgreich versendet“.

Mein Wunsch wäre es, wenn sich stattdessen die Datei „danke.htm“ öffnen würde.

Kann mir einer von euch weiterhelfen?

Danke und Gruß
René

Hallo,

Variante 1: Einen Redirect senden auf „danke.html“. Das macht man mit dem HTTP Returnwert „302 Moved“, bzw. mit PHP sendet Du den Header so:

<?php /* process form data here */
header('Location: danke.html'); ?\> Hier ist es wichtig dass noch kein (!!) Output gesendet wurde, sonst gibts einen Fehler. Siehe dazu auch [http://www.php.net/manual/en/function.header.php](http://www.php.net/manual/en/function.header.php) Variante 2: Einlesen der Datei "danke.htm" und diese als Returnwert senden: <?php /* process form data here */
readfile('danke.htm'); ?\> Siehe dazu auch [http://www.php.net/manual/en/function.readfile.php](http://www.php.net/manual/en/function.readfile.php) Vorteil Variante 1: ein Browser-Reload würde keine Daten neu versenden - aber das "danke.htm" kann auch von woanders verlinkt werden. Vorteil Variante 2: kein Browser Redirect, die URL bleibt im Browser stehen, der User sieht wohin er gesendet hat - ein Browser Reload sendet die Daten jedoch nochmals. Hoffe das hilft, LG, Ernest

Guten Abend Ernest,

vielen Dank für deine Hilfe.

Anhand von

<?php /* process form data here */
readfile('danke.htm'); ?\> wird zwar meine Datei aufgerufen, aber das geschieht ja schon, wenn ich die Kontaktformularseite aufrufe. Da habe ich aber noch nichts ins Formular eintragen können und bekomm schon eine E-Mail. Was mache ich falsch? Daanke und schönen Abend noch. Viele Grüße René

Hi,

ich gehe davon aus dass Du eine statische Seite „kontakt.htm“ hast, welche die enthält - richtig?

Heisst dass Du zuerst direkt die kontakt.htm verlinkst. Dort kannst Du in aller Ruhe die Formfields ausfüllen, beim Submit gehen die Daten an kontakt.php. Damit werden die Daten erst im /* process form data here */ verarbeitet und anschliessend die danke.htm verschickt.

Ist natürlich keine wirklich elegante Lösung - probiers mal mit dem oder Ähnlichem (sorry, irgendwie funktioniert das mit dem Codedarstellen (FAQ:3090) nicht…):

<?php /* how to process a contact form */
// constants and definitions define('FORM\_NEW', 'form.htm'); define('FORM\_OK', 'danke.htm'); define('FORM\_ERR', 'fehler.htm'); define('SUBMIT\_NAME', 'btnSubmit'); // Name des Submit Buttons // Verarbeitet die Formdaten. // diese simple Variante kommt einfach boolean zurück // - alles ok: true // - Fehler aufgetreten: false // professionell ist das nicht, aber das kann ja noch werden... function processFormData() { var $statOk; // hier prüfen wir und versenden die Mail // wenbn ein Fehler auftritt wird $statOk auf false gesetzt! return $statOk; } // die ist ganz einfach - kann aber natürlich ausgebaut werden. // zB statt readfile() die Datei einlesen und personalisieren, etc... function showResult(what) { readfile(what); } // Zuerst prüfen wir ob der Submit Button vorhanden ist. // Nur dann verarbeiten wir die Formdaten! if ($\_REQUEST[SUBMIT\_NAME]) { if (processFormData()) showResult(FORM\_OK); else showResult(FORM\_ERR); } else showResult(FORM\_NEW); ?\>

Hallo nochmal,

ich habe mir in der tat die konatkt.htm gebastelt und per action auf die kontakt.pho verwiesen.

letzte woche war ein kumpel auf besuch und hat mir alles in eine kontakt.php umgeschrieben. das ist eleganter - gebe ich ja zu - aber beim antworten sehe ich jetzt alles auf einer seite und das ist auch nicht das was ich will.

Dürfte ich die die drei dateien auch mal zusenden?

Danke und Gruß

Das wird nicht gehen, da ichmeine Mailadresse nicht veröffentliche :smile:
Es sei denn Du hast sie irgendwo FTP-bar zum Abholen, dann gerne.

Anbei meine FTP-Daten:
SRV: www.pc-praxishilfe.de
BN: www.pc-praxishilfe.de
PW: deichmann
Port: 21

Das wird nicht viel helfen ohne Passwort - ich meinte einen anonymen FTP :wink:

Habe leider keinen eigenen FTP-Server.
Zugangsdaten wurden gestern Abend geändert, nachdem keine Reaktion mehr kam.