Sie befinden sich hier im Forenarchiv von phpforum.de wenn Sie direkt ins Forum möchten, klicken Sie bitte hier. Zur Startseite kommen Sie hier.

mail() abgebrochen wenn header( "location: danke.php" ); exit; ?

mail($MailTo, $MailSubject, $MailBody, "From: " .$textfeld05);
header( "Location: danke.php" );
exit;


kann es zu problemen führen wenn ich gleich nach dem mail() den weiterleiten und exit befehl gebe?
z.B. dass die mail() funktion abgebrochen wird bevor diese ausgeführt wurde. oder wird diese zuerst
beendet bevor weitergeleitet wird oder im hintergrund ausgeführt?

oder soll ich eine abfrage einbauen ob mail versendet wurde (wenn ja wie?) bevor ich weiterleite?

Hier gehts zum Orginal Eintrag "mail() abgebrochen wenn header( "location: danke.php" ); exit; ?" im Forum

Antworten

Hi kendal,

mail() gibt Dir zurück, ob die Ausführung gelungen ist:
Code:                   In Zwischenablage kopieren (nur IE)
1">




2.

Herzlichen Dank, ich bin ja noch im Lernstadium ;-)


3.

könnt ich jetzt eine zeile vor dem mail() noch ein print("ihre mail wird verarbeitet ..."); hinsetzen damit der user weiss das was geht?

(abfrage ob die felder ausgefüllt wurden ist schon durchlaufen)


4.

nö, nicht wenn Du nachher mit header () arbeitest: Wenn Du vorher was ausgibst wird für diese ausgabe schon ein Header geschickt und der User bekommt nen "header already sent"-Fehler. (edit: Scripte, die die Header-Funktion verwenden am Besten immer mit "ob_start ()" beginnen!)

noch nen Tip zu den returns von Funktionen: Am besten bei jeder Funtion, die irgendwas zurückgibt (in der Doku zu erkennen am "int funktion (...)"), darauf prüfen und den restlichen Scriptablauf davon abhängig machen!!!

greetz gangre


5.

Scriptablauf davon abhängig machen - so wie in deinem beispiel mit $ret und dann $ret überprüfen?


6.

joha, genau das. Natürlich nur bei Funktionen mit Status-Rückgabe;). Wird direkt ein Ergebnis zurückgeben verarbeitest Du es ja sowieso...
Als Programmierer sollte man sich sowiso zu 2/3 mit zwei Dingen beschäftigen: Dokumentation und Fehlerbehandlung;) (das restliche Drittel geht mit Kaffeemachen drauf *grins*)


7.

kaffee klingt gut!!!!


ich schreibe mit <?php print $feld1?> die werte in die formularfelder zurück (damit wenn das script ein leeres feld entdeckt der schon eingegebene wert erhalten bleibt).
das problem ist jetzt wenn der user auf der danke seite ist und den back button im browser drückt wieder zum gefüllten formular zurückkommt.

darf ich die werte hier auf null setzen?

if ($ret == 1)
{
$feld1 = "";
header( "Location: danke.php" );
exit ();
}


8.

bringt garnix, der Zurückbutton holt in der Regel die Seite aus dem Cache des Browsers, da hast Du wenig Einfluss drauf. Es gibt allerdings bei den HTML-Metas sowas wie "Cache: expires = 0", da muss sich mal ein HTML-Kundiger (hab mich mit den Metas ewig nicht beschäftigt;) ) mit reinhängen!


Hier gehts zum Orginal Eintrag "mail() abgebrochen wenn header( "location: danke.php" ); exit; ?" im Forum
 
phpforum.de | Impressum