Anmelden

Archiv verlassen und diese Seite im Standarddesign anzeigen : Frage zu PHP-Code, Kontaktformular


Onlinejunky
2007-01-11, 13:34:51
Hi Leute,

ich habe mir mit Hilfe einer Vorlage ein Kontaktformular gebaut. Es funktioniert auch ganz gut. :)

Wenn die Nachricht gesendet wurde, kommt unten drunter eine Meldung.

"Die Botschaft wurde weitergeleitet"

Hier der Auszug aus dem Code:

if (@mail("meine@email.de", "Feedback", $mailbody, "From: $Email")) {
echo "<p>Danke! Die Botschaft wurde weitergeleitet!</p>\n";
} else {
echo "<p>Leider gab es einen Sendefehler!</p>\n";
}
}
}
?>
</body>
</html>

Wie mache ich es, dass sich dann statt der Nachricht eine neue Seite öffnet oder auch von mir aus im selber Fenster wo z.b steht "Vielen Dank wir haben ihr Nachricht entgegen genommen", also das das Formular dann weg ist. Vielleicht mit include?


Mfg

Marscel
2007-01-11, 15:18:02
Entweder bindest du eine Datei ein, rufst eine Funktion auf oder sendest per header("Location: xyz.php"); eine Weiterleitung an die angegebene Adresse.

Onlinejunky
2007-01-12, 00:29:47
Kann das vielleicht jemand leichter erklären? :redface:

Wie das eingebunden wird usw.

Thx

MFg

Xanatos
2007-01-12, 01:07:58
include("pfadzurdatei.php"); <--Datei einbindung
header("location: pfadzurdatei.php"); <-- header senden
function(); <-- funktion aufrufen

Onlinejunky
2007-01-12, 01:19:09
Ok,

danke erstmal aber leider will es nicht funktionieren.

Also ich mache z.b.

include("danke.html")

dann ruft er nach absenden des Formulars die Datei auf. Aber dann steht einfach unter dem Kontaktformular "Vielen Dank".

header("location: danke.html");

Dann kommt das "Warning: Cannot modify header information - headers already sent by (output started at /mnt/be1/02/241/00000030/htdocs/include1.php:10) in /mnt/be1/02/241/00000030/htdocs/include1.php on line 99"

Also was muss ich genau eingeben, dass sich dann auch eine neue Seite öffnet, in der die Danksagung steht?

Mfg

Onlinejunky
2007-01-12, 02:02:52
Mit Javascript gehts irgendwie:

echo'<script language ="JavaScript">
<!--
document.location.href="danke.html?vgpage=$vgpage";
// -->
</script>';

Dann öffnet sich die neu Seite.


Würde aber gerne wissen wie das mit PHP geht. Mit location ist klar aber fehlt da noch ne angabe oder so?


Mfg

Nase
2007-01-12, 08:19:28
Header werden, wie der Name schon sagt, an den Anfang einer Datenübermittlung gestellt. Nachdem du irgendeinen Inhalt aufrufst oder darstellen lässt, kann kein header mehr gesendet werden. Das besagt ja auch die Fehlermeldung ("header already sent"). Sinnvoll wäre es, dem Formular als Ziel eine anderen PHP-Datei zuzuweisen. In dieser weiteren Datei führst du die mail-Funktion aus und sendest danach den header. Oder du schreibst direkt in diese Datei deine Danksagung für das Ausfüllen des Formulars rein.

Onlinejunky
2007-01-12, 12:30:07
Ok, vielen Dank!

Mit dem Javascript klappt es auch super aber kann mir jemand sagen was das hier heißt: ?vgpage=$vgpage"

Mfg

JTHawK
2007-01-14, 02:35:29
warum machst du nicht einfach sowas in der art:


if ($Bedingung_fuer_Formular_abgesschickt == true) {
//daten aus formular verarbeiten und meldung ausgeben
} ELSE {
//ausgabe formular
}


Ganz ohne (oder meinetwegen auch mit) Includes aber ohne lästigen Redirect mit neuem Header. Naja, ist wie so vieles Geschmackssache.