Header Problem

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Header Problem

    Hallo,

    ich habe derzeit ein Problem mit header():

    ich sende ein

    PHP-Code:
    header("Content-type: application/pdf");
    header("Content-disposition: attachment; filename=mini".$this->tools->get['pdf'].".pdf");
    header("Content-length: ".strlen($web));
    echo 
    $web;
    die(); 
    beim Fireofox bekomme ich zB auch ein "mini15.pdf",
    nur der doofe IE bringt als Dateinamen

    "index.php?go=download&choose=5831" und kann es deshalb auch nicht runterladen.
    Wie bekomme ich den IE dazu, den richtigen Dateinamen zu akzeptieren ?
    TBT

    Die zwei wichtigsten Regeln für eine berufliche Karriere:
    1. Verrate niemals alles was du weißt!


    PHP 2 AllPatrizier II Browsergame

  • #2
    PHP-Code:
    header('Content-disposition: attachment; filename="mini'.$this->tools->get['pdf'].'.pdf"'); 
    ^^ check mal
    Kissolino.com

    Kommentar


    • #3
      nope, keine Änderungen im IE6
      TBT

      Die zwei wichtigsten Regeln für eine berufliche Karriere:
      1. Verrate niemals alles was du weißt!


      PHP 2 AllPatrizier II Browsergame

      Kommentar


      • #4
        mal kurz durchgetestet:

        IE 5.01 - failed
        IE 5.5 - failed
        I6 - failed
        Opera 5 - ok
        Opera 6 - ok
        Opera 7 - ok
        NS 4.8 - ok - (Datei dafür defekt!)
        NS 6.1 - ok
        NS 6.2 - ok
        NS 7.0 - ok
        NS 7.1 - ok
        Mozilla 1 - ok
        Mozilla 1.1 - ok
        Mozilla 1.2 - ok
        Mozilla 1.3 - ok
        Mozilla 1.4 - ok
        Mozilla 1.5 - ok
        Firebird 0.7 - ok
        Firefox 0.8 - ok
        Firfox 0.9 - ok
        TBT

        Die zwei wichtigsten Regeln für eine berufliche Karriere:
        1. Verrate niemals alles was du weißt!


        PHP 2 AllPatrizier II Browsergame

        Kommentar


        • #5
          PHP-Code:
          header('Content-Type: application/octet-stream');
          header('Content-Type: '.$mime.'');
          header('Content-Disposition: attachment; filename="'.$realname.'"');
          header('Content-Length: '.filesize($dlpath.$filename).'');
          readfile($dlpath.$filename); 
          ^^ läuft bei mir mit allem (wenn ich nicht grad auf der leitung stehe)

          in einem älteren script hatte ich für den ie (browserweiche) noch ein
          PHP-Code:
          header("Content-disposition: inline; filename=".$realname.""); 
          ob's hilft ?
          Kissolino.com

          Kommentar


          • #6
            Ich meine mich ganz vage erinnern zu können, dass man dieses Problem durch anhängen eines parameters an die URL beheben kann:
            Code:
            index.php?go=download&choose=5831&ie=.pdf
            Ich glaub', ich hab das mal in den User-Notes auf php.net gelesen, konnte es jetzt aber nicht wiederfinden.
            "Ach was soll's? Dann bau ich mir halt meinen eigenen Vergnügungspark mit Blackjack und Nutten." - Bender

            Kommentar


            • #7
              index.php?go=download&choose=5831&ie=.pdf von ... kann nicht übertragen werden . ...
              Quittung des IE
              TBT

              Die zwei wichtigsten Regeln für eine berufliche Karriere:
              1. Verrate niemals alles was du weißt!


              PHP 2 AllPatrizier II Browsergame

              Kommentar


              • #8
                von php.net:
                <?php
                // We'll be outputting a PDF
                header('Content-type: application/pdf');

                // It will be called downloaded.pdf
                header('Content-Disposition: attachment; filename="downloaded.pdf"');

                // The PDF source is in original.pdf
                readfile('original.pdf');
                ?>
                Note: There is a bug in Microsoft Internet Explorer 4.01 that prevents this from working. There is no workaround. There is also a bug in Microsoft Internet Explorer 5.5 that interferes with this, which can be resolved by upgrading to Service Pack 2 or later.
                Beantworte nie Threads mit mehr als 15 followups...
                Real programmers confuse Halloween and Christmas because OCT 31 = DEC 25

                Kommentar


                • #9
                  da steht aber nix vom IE6!

                  PS: das hatte ich auch schon gelesen.
                  PPS: warum funzt es im übrigen, wenn ich hier im Board ein attachment downloade ???
                  TBT

                  Die zwei wichtigsten Regeln für eine berufliche Karriere:
                  1. Verrate niemals alles was du weißt!


                  PHP 2 AllPatrizier II Browsergame

                  Kommentar


                  • #10
                    joa nichts von ie 6.
                    fpdf macht das so:

                    //Download file
                    if(isset($HTTP_ENV_VARS['HTTP_USER_AGENT']) and strpos($HTTP_ENV_VARS['HTTP_USER_AGENT'],'MSIE 5.5'))
                    Header('Content-Type: application/dummy');
                    else
                    Header('Content-Type: application/octet-stream');
                    Header('Content-Length: '.strlen($this->buffer));
                    Header('Content-Disposition: attachment; filename='.$file);
                    Header('Expires: 0');
                    echo $this->buffer;

                    evt hilft das
                    Beantworte nie Threads mit mehr als 15 followups...
                    Real programmers confuse Halloween and Christmas because OCT 31 = DEC 25

                    Kommentar


                    • #11
                      bin aktuell da angekommen (viele Tests dazwischen)
                      PHP-Code:
                      //header("Cache-Control: max-age=1");
                      //header("Expires: ".gmdate("D, d M Y H:i:s",time()+1)."GMT");
                      //header("Last-Modified: ".gmdate("D, d M Y H:i:s",time())."GMT");
                      //header("Content-Type: application/octet-stream");
                      //header("Content-Type-Header: application/octet-stream");
                      //header('Content-Type: application/octet-stream; name=mini'.$this->tools->get['pdf'].'.pdf');
                      header('Content-Type: application/octet-stream');
                      header("Content-Length: ".strlen($web));
                      header('Content-disposition: attachment; filename=mini'.$this->tools->get['pdf'].'.pdf');
                      //header("Content-Type: application/pdf");
                      header('Expires: 0');
                      echo 
                      $web
                      was ja genau deinem Beispiel entspricht.
                      Und der IE (egal welche Version - auch der IE 6) zeigt mir nur den Mittelfinger
                      TBT

                      Die zwei wichtigsten Regeln für eine berufliche Karriere:
                      1. Verrate niemals alles was du weißt!


                      PHP 2 AllPatrizier II Browsergame

                      Kommentar


                      • #12
                        mit .pdf leider ungetestet, .txt, .doc, .xls aber keine probleme mit allen browsern...

                        PHP-Code:
                        <?php
                        ### Download erzwingen ...
                            
                        header("Expires: Mon, 26 Jul 2001 05:00:00 GMT");
                            
                        header("Last-Modified: " gmdate("D, d M Y H:i:s") . " GMT");
                            
                        header("Cache-Control: no-store, no-cache, must-revalidate");
                            
                        header("Cache-Control: post-check=0, pre-check=0"false);
                            
                        header("Pragma: no-cache");
                            
                        header("Cache-control: private");
                            
                        header("Content-Transfer-Encoding: binary");
                            
                        header("Content-Length: ".filesize($filepath.$filename));
                            
                        header("Content-Disposition: attachment; filename=".$_GET['file']);
                            
                        header("Content-Type: application/force-download");
                            
                        header("Content-Type: application/download");
                                  
                            if (
                        preg_match('#Opera(/| )([0-9].[0-9]{1,2})#'getenv('HTTP_USER_AGENT')) or preg_match('#MSIE ([0-9].[0-9]{1,2})#'getenv('HTTP_USER_AGENT'))) {
                            
                        header("Content-Type: application/octetstream; name=".$_GET['file']);
                            }else{
                            
                        header("Content-Type: application/octet-stream; name=".$_GET['file']);
                            }
                            
                        ### Datei ausgeben.
                            
                        readfile($filepath.$filename);
                            exit();
                        ?>

                        Kommentar


                        • #13
                          <spam> achja, so mach ich das mit den pdf's und dem ie: </spam>

                          http://fpdf.org/en/FAQ.php#3

                          Kommentar


                          • #14
                            Problem gefunden !!!

                            das session_start(); zerhaut beim IE die header('Content ... ') Angaben.
                            Wenn ich session_start(); auskommentiere funktioniert alles
                            (außer beim IE 5.5 - da muß das "attachment" noch weg)

                            nur ist das jetzt extrem ungünstig, da ich für die Erstellung der PDF
                            Datei Angaben aus der Session brauche. Eine Übergabe der Daten per
                            URL ist aus Datenschutzgründen nicht möglich.

                            Ideen ?
                            TBT

                            Die zwei wichtigsten Regeln für eine berufliche Karriere:
                            1. Verrate niemals alles was du weißt!


                            PHP 2 AllPatrizier II Browsergame

                            Kommentar


                            • #15
                              in welcher reihenfolge machst du das?

                              erst session_start() und dann header()? oder umgekehrt?
                              INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


                              Kommentar

                              Lädt...
                              X