tutorials.de Buch-Aktion 05/2012
Like Tree2Danke
  • 1 Beitrag von chmee
  • 1 Beitrag von Dr Dau
ERLEDIGT
NEIN
ANTWORTEN
3
ZUGRIFFE
606
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    sharmuur sharmuur ist offline Mitglied Bronze
    Registriert seit
    Feb 2010
    Ort
    München
    Beiträge
    45
    Hallo,

    ich hätte mal wieder eine Frage.
    Ich benutze für mein php-Script die Header-Funktionen um die Daten von einer Mysql-DB als Datei auszugeben.
    Da ich am Anfang über die Dateiausgabe keine Ahnung hatte, habe ich einfach gegoogelt, wie man es macht und glücklicherweise
    habe ich die unten stehenden Header-Funktionen gefunden und einfach ausprobiert. Es funktioniert super, aber ich habe wievor keine Ahnung,
    was Header eigentlich ist und was die ganzen Parametern innerhalb der Klammern machen. Ich habe in verschiedenen Tutorials und auch in php.net
    die Artikeln über Header gelesen, leider konnte ich nicht begreifen. Kann jemand mir bitte eine Webseite empfehlen, wo über Header verständlich erklärt ist
    oder kann jemand mir sagen was bei den vorliegenden Funktionen gemacht werden.

    danke voraus

    PHP-Code:
    header("Content-type: application/octet-stream");
    header("Content-Disposition: attachment; filename=db.csv");
    header("Pragma: no-cache");
    header("Expires: 0"); 
     

  2. #2
    Avatar von chmee
    chmee chmee ist offline mod | media
    tutorials.de Moderator
    Registriert seit
    Apr 2004
    Ort
    Berlin bei Potsdam
    Beiträge
    7.630
    Blog-Einträge
    4
    sharmuur bedankt sich. 
    Mein Blog - VideoFAQ - FotoFAQ - bei Flickr - DSLR Kleinanzeigen
    Benutzt den DANKE-Knopf oder bewertet den Beitrag

    "GEHT NICHT" HILFT NICHT, TESTET EURE CODES ONLINE UND GEBT KLARE INFOS!
    -> Regexp <- -> php <- -> Javascript <-

  3. #3
    Avatar von Dr Dau
    Dr Dau Dr Dau ist offline ich wisch hier durch
    Registriert seit
    Feb 2005
    Ort
    hinterm Mond gleich Links
    Beiträge
    6.160
    Blog-Einträge
    4
    Hallo!

    Mit header() werden Daten an die Client gesendet, welche er als erstes bekommen soll.
    Es können weitere Daten (z.B. HTML-Quelltext) folgen, ist aber nicht grundsätzlich notwendig.
    Es kann aber auch passieren dass andere Daten ebenfalls als erstes an den Client geschickt werden müssen, ein typisches Beispiel wäre unter anderem session_start().
    Damit header() und session_start() "gleichzeitig" an den Client gesendet werden können, muss PHP den Ausgabepuffer verwenden (siehe Output-Control-Funktionen).
    Versuchst Du header() und session_start() ohne Ausgabepuffer an den Client zu senden, spuckt PHP eine Warnnung aus (headers already sent).
    Selbiges passiert auch wenn andere Daten vorher gesendet werden (z.B. eine Leerzeile oder HTML-Quelltext).
    Siehe auch php-fehlermeldungen.de.

    Nun zu Deinem Code:
    Mit "Content-Type" (ein anderer Begriff wäre MIME-Type) wird dem Client mitgeteilt welcher Dateityp (nicht zu verwechseln mit der Dateiendung) gesendet werden soll.
    Einen kleinen (aber wohl nicht vollständigen) Überblick über einige MIME-Typen findest Du z.B. hier bei Selfhtml.
    Mit "Content-Disposition" wird dem Client mitgeteilt ob es sich um einen Anhang (attachment) handelt und dieser als Download angeboten werden soll, oder ob die Datei im Client (sofern möglich) angezeigt werden soll (inline).
    Die 2. Angabe (filename) teilt dem Client den Dateinamen mit, unter welchem die Datei angehängt bzw. angezeigt werden soll.
    Mit "Pragma" wird angegeben ob bzw. wie die Datei im Proxy zwischengespeichert werden soll.
    "no-cache" bedeutet dabei dass die Datei nicht im Proxy zwischengepeichert werden soll (sinnvoll bei Dateien die sich immer wieder ändern).
    Mit "Expires" wird dem Client mitgeteilt wie lange dieser die Datei zwischenspeichern soll (z.B. im Browser-Cache).
    Die "0" bedeutet hierbei die Zeit in Sekunden, die Datei wird also nicht vom Client zwischengespeichert (auch hier wieder --> sinnvoll bei Dateien die sich immer wieder ändern).

    Weitere Links:
    http://de.selfhtml.org/html/kopfdaten/meta.htm
    http://www.ietf.org/rfc/rfc2183.txt

    Gruss Dr Dau
    sharmuur bedankt sich. 
    Schri-Schra-Schrödi *g*
    mehrspaltiges/zeiliges Seitenlayout mit DIV's und CSS
    Dinge, die mit Tabellen besser klappen als mit CSS
    Ausgabe von Datum/Zeit unabhängig von der Server Zeitzone [php]
    Meine Links zum Thema Linux (Last update: 29.10.2011)
    Kein Busen ist so flach wie das Niveau dieser Party!
    ----
    Alte Weisheit: wer uns in den Arsch kriecht wird beschissen!
    ----
    Ich habe 3 Kinder und kein Geld!
    Warum kann ich nicht keine Kinder haben und 3 Geld?! (Homer Jay Simpson)

  4. #4
    sharmuur sharmuur ist offline Mitglied Bronze
    Registriert seit
    Feb 2010
    Ort
    München
    Beiträge
    45
    vielen Herzlichen Dank für die Antwort, es hat mir gut geholfen

    Gruß
     

Ähnliche Themen

  1. Antworten: 1
    Letzter Beitrag: 13.01.11, 08:43
  2. PHP Header
    Von Sasser im Forum PHP
    Antworten: 3
    Letzter Beitrag: 25.11.08, 21:29
  3. Wo kommentieren? Header oder Quelltext?
    Von DonDozone im Forum Coders Talk
    Antworten: 2
    Letzter Beitrag: 02.07.08, 19:54
  4. Header-Größe bestimmen oder nicht?
    Von aheimburg im Forum CSS
    Antworten: 2
    Letzter Beitrag: 05.11.07, 15:01
  5. Mail Body und/oder Header auslesen?
    Von speedyggg im Forum PHP
    Antworten: 2
    Letzter Beitrag: 24.10.06, 08:27