| Autor |
Nachricht |
derjan
Threadersteller
Dabei seit: 12.04.2003
Ort: siegburg
Alter: 28
Geschlecht:
|
Verfasst Do 04.11.2004 13: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 13:18, insgesamt 1-mal bearbeitet
|
|
| |
|
 |
Sarky
Moderator
Dabei seit: 29.06.2002
Ort: Stuttgart
Alter: 26
Geschlecht:
|
Verfasst Do 04.11.2004 13: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
|
|
| |
|
 |
beeviZ
Dabei seit: 30.09.2002
Ort: Dortmund
Alter: 16
Geschlecht:
|
Verfasst Do 04.11.2004 13: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 13:17, insgesamt 1-mal bearbeitet
|
|
| |
|
 |
derjan
Threadersteller
Dabei seit: 12.04.2003
Ort: siegburg
Alter: 28
Geschlecht:
|
Verfasst Do 04.11.2004 13:29
Titel
|
 |
|
header ("location: danke.html"); <----FUNZT PERFEKT...
danke für die schnelle Hülfe!
|
|
| |
|
 |
rob
Dabei seit: 11.12.2003
Ort: ~/
Alter: 31
Geschlecht:
|
Verfasst Do 04.11.2004 14: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 12: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 12:28, insgesamt 1-mal bearbeitet
|
|
| |
|
 |
Nimroy
Moderator
Dabei seit: 26.05.2004
Ort: zwischen Köln und D'dorf
Alter: 30
Geschlecht:
|
Verfasst Fr 22.08.2008 14: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 14: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 |
(PHP) Weiterleitung auf "Danke"-Seite
php var echo
PHP Kontaktformular Echo... ratlos
Javascript im PHP echo: Variablen werden nicht erkannt
[PHP] Login mit PHP und Weiterleitung in geschützten Bereich
PHP - individuelle Weiterleitung
|
 |