Autor |
Nachricht |
depot.hdm
Threadersteller
Dabei seit: 12.04.2003
Ort: Siegburg
Alter: 44
Geschlecht:
|
Verfasst Do 04.11.2004 12:11
Titel [PHP] Anstelle von echo Weiterleitung auf neue Seite |
|
|
Hi, habe auf einer Kontatseite mit diesem "Formailer" gearbeitet. Doff ist nur, das wenn die Mail versandt wurde, lediglich ein neues Fenster mit Times "Ihre Mail wurde versandt". Find ich ein wenig cheap, daher würde ich gerne
auf ein neues html-file verweisen, das hängt ja mit dem "echo"-tag zusammen, gibts da nen tag a la öffne fenster xyz...oä!
Danke im voraus! Hier nochmal der Source.
Code: |
<?
$my_email="jan.folgmann@rodin-design.de";
$name = stripslashes ($name);
$name = trim ($name);
$email = stripslashes ($email);
$email = trim ($email);
$telefon = stripslashes ($telefon);
$telefon = trim ($telefon);
$nachricht = stripslashes ($nachricht);
$nachricht = trim ($nachricht);
if (empty($name))
{ echo "Sie haben Ihren Namen nicht eingegeben.<br>";
echo "Klicken Sie <a href=\"javascript:history.back()\">hier</a>, um zum Formular zurückzukehren und den Fehler zu beheben.<br>"; }
else
if (empty($email))
{ echo "Sie haben Ihre Email-Adresse nicht eingegeben.<br>";
echo "Klicken Sie <a href=\"javascript:history.back()\">hier</a>, um zum Formular zurückzukehren und den Fehler zu beheben.<br>"; }
else
if (empty($nachricht))
{ echo "Sie haben keine Nachricht eingegeben.<br>";
echo "Klicken Sie <a href=\"javascript:history.back()\">hier</a>, um zum Formular zurückzukehren und den Fehler zu beheben.<br>"; }
else
if(!ereg(".+@.+\..+", $email)&& !empty($email)) {
echo "Die Email-Adresse ist falsch.<br>";
echo "Klicken Sie <a href=\"javascript:history.back()\">hier</a>, um zum Formular zurückzukehren und den Fehler zu beheben."; }
else {
$betreff="Email an den Webmaster";
$header="From: $name <$email>\n";
$nachricht.="\n";
mail($my_email,$betreff,$nachricht,$header);
echo "Ihre Nachricht wurde versendet!";
}
?>
|
//EDIT by Sarky
- Bitte Code-Tags verwenden!
- Bitte aussagekräftige Titel verwenden!
Zuletzt bearbeitet von Sarky am Do 04.11.2004 12:18, insgesamt 1-mal bearbeitet
|
|
|
|
|
Sarky
Dabei seit: 29.06.2002
Ort: Düsseldorf
Alter: 42
Geschlecht:
|
Verfasst Do 04.11.2004 12:16
Titel
|
|
|
Verwende anstelle von echo()
Code: |
header("location: <seite-die-du-aufrufe-möchtest>.html");
|
Nur achte dabei darauf, daß Du VORHER KEINERLEI SONSTIGE AUSGABEN mit echo() oder irgendwelchem HTML-Tags hast, sonst bekommst Du die Fehlermeldung "Headers already sent".
PS: In PHP heißt das nicht Tag sondern Funktion
|
|
|
|
|
Anzeige
|
|
|
beeviZ
Dabei seit: 30.09.2002
Ort: -
Alter: -
Geschlecht:
|
Verfasst Do 04.11.2004 12:17
Titel
|
|
|
statt des echos probier mal
Code: | header ("location: danke.html"); |
//edit: seh gerade du willst n neues fenster...
dann müsstestes mit javascript machen.
so von wegen
echo "window.open('danke.html');"
Zuletzt bearbeitet von beeviZ am Do 04.11.2004 12:17, insgesamt 1-mal bearbeitet
|
|
|
|
|
depot.hdm
Threadersteller
Dabei seit: 12.04.2003
Ort: Siegburg
Alter: 44
Geschlecht:
|
Verfasst Do 04.11.2004 12:29
Titel
|
|
|
header ("location: danke.html"); <----FUNZT PERFEKT...
danke für die schnelle Hülfe!
|
|
|
|
|
rob
Dabei seit: 11.12.2003
Ort: ~/
Alter: 46
Geschlecht:
|
Verfasst Do 04.11.2004 13:34
Titel
|
|
|
Zitat: | header ("location: danke.html"); <----FUNZT PERFEKT... |
Ist aber trotzdem falsch und funktioniert im Schlimmsten Fall nicht...
Erstmal würde ich ein exit; dahinter setzen, damit dahinterstehender Code nicht eventuell doch noch ausgeführt wird. Das könnte sonst u.U. mal passieren. Aber das ist nicht das Problem.
HTTP 1.1 fordert als Location-Header einen absoluten URI, samt Schema.
Also entweder direkt reinschreiben
header( "Location: http://provider.de/seite.html" );
oder erzeugen lassen:
header( "Location: http://".$_SERVER['HTTP_HOST'] . dirname( $_SERVER['PHP_SELF'] ) . "/". $relative_url );
|
|
|
|
|
vase2k
Dabei seit: 24.04.2006
Ort: -
Alter: -
Geschlecht:
|
Verfasst Do 02.11.2006 11:26
Titel
|
|
|
Sarky hat geschrieben: | Verwende anstelle von echo()
Code: |
header("location: <seite-die-du-aufrufe-möchtest>.html");
|
Nur achte dabei darauf, daß Du VORHER KEINERLEI SONSTIGE AUSGABEN mit echo() oder irgendwelchem HTML-Tags hast, sonst bekommst Du die Fehlermeldung "Headers already sent".
PS: In PHP heißt das nicht Tag sondern Funktion |
Code: | ob_start("ob_gzhandler"); | vor irgendwelchen html-ausgaben (egal ob reines html oder über php-echo()) einfügen und schon funktioniert das auch mit den headern
[edit]oops .. das thema is ja schon gut zwei jahre alt .. sorry für die leichenschändung, aber vielleicht hilft es ja trotzdem irgendwann mal wem [/edit]
Zuletzt bearbeitet von vase2k am Do 02.11.2006 11:28, insgesamt 1-mal bearbeitet
|
|
|
|
|
Nimroy
Community Manager
Dabei seit: 26.05.2004
Ort: zwischen Köln und D'dorf
Alter: 45
Geschlecht:
|
Verfasst Fr 22.08.2008 13:01
Titel
|
|
|
ich reaktivier das mal. Weiß jemand, obs da mittlerweise ne Lösung in PHP5 gibt? ich hab nen link erzeugt und den will ich dann in nem neuen fenster geöffnet haben.
|
|
|
|
|
sjalf
Dabei seit: 21.04.2008
Ort: Berlin
Alter: -
Geschlecht: -
|
Verfasst Fr 22.08.2008 13:05
Titel
|
|
|
Rein PHP: Nein. Php als serverseitige Sprache kann das gar nicht können. Da brauchst du weiterhin JavaScript, sobald automatisches Fenster öffnen ins Spiel kommt. Halte ich aber eh nicht für empfehlenswert, bleibt nämlich in PopUp-Blockern hängen.
|
|
|
|
|
|
|
|
Ähnliche Themen |
Bild vor eine Html Seite setzen...mit Weiterleitung?
(PHP) Weiterleitung auf "Danke"-Seite
Neue Seite erstellen.
Pageflip steuern: pro seite neue szene?
Neue Seite in Photoshop hat einen gelbstich
Bildtauschen Link ohne neue HTML-Seite?
|
|