phpbar.de logo

Mailinglisten-Archive

[php] zweimal Header

[php] zweimal Header

"Mario Haßler" M.Hassler at gmx.de
Di Jun 8 10:21:42 CEST 2010


Thomas Hausheer schrieb:

> [...] Nach dem Abschicken des Formulares und der Überprüfung  
> sollte das File direkt runtergeladen werden. Dies mache ich mit  
> folgendem Code:
> 
> [...]
> header("Content-type: '.$fileFORMAT.'");
> header("Content-Disposition: attachment; filename=\"".$fileNAME."\"");
> [...]
> Das funktioniert soweit auch prima, nur die eigentliche Website wird  
> nicht mehr neu geladen - sie bleibt im Zustand des ausgefüllten  
> Formulares stehen. Sie muss sich aber auch reloaden, um weiteren  
> Inhalt anzuzeigen (für registrierte Benutzer) und auch um dem User die  
> Dankesmeldung anzuzeigen.

Das ist nicht so einfach, denn du willst mit dem Absenden des Formu-
lars zwei Dinge bewirken: Datei herunterladen und Dankesmeldung an-
zeigen. Damit ist HTML im Grunde schon überfordert, und PHP kann
meines Wissens diese Lücke nicht beheben -- aber JavaScript könnte
das (z. B. mit einem zusätzlichen onSubmit-Eventhandler im Formular).

Ich denke, der sauberste Ansatz (der vor allem auch funktioniert, wenn
JavaScript ausgeschaltet ist) ist wie folgt:

Nach Absenden des Formulars erscheint eine Seite (HTML/PHP) "Download
starten", die per JavaScript das PHP-Skript zum Download der Datei
aufruft und alternativ einen Link (mit target="_BLANK") dazu anbietet
(das bekannte "Falls der Download nicht automatisch startet, ...").

Bei eingeschaltetem JavaScript könnte schließlich automatisch auf
eine Danke-Seite weitergeschaltet werden, ohne JavaScript muss man
sich wohl mit einem Link "Weiter" o. ä. behelfen.

Extra-Tipp: Mit Hilfe von <noscript></noscript> lassen sich bestimmte
Texte und Steuerelemente nur bei ausgeschaltetem JavaScript einblenden.
Mit CSS, das per JavaScript geschrieben wird, sind noch schönere
"Tricks" möglich.

Gruß,

Mario Haßler


-- 
GRATIS für alle GMX-Mitglieder: Die maxdome Movie-FLAT!
Jetzt freischalten unter http://portal.gmx.net/de/go/maxdome01

php::bar PHP Wiki   -   Listenarchive