ottogal: Jlog: Problem mit mysql-export

Hallo in die Runde (vielleicht @Jeena),

ich habe das Jlog-Plugin DBExport gemäß der Anweisung installiert, bekomme jedoch bei der Ausführung ("Dump downloaden") diese Fehlermeldung:

Warning: Header may not contain more than a single header, new line detected. in  .../htdocs/jlog/plugins/DBExport.jplug.php on line 132
...

Es geht dabei um diese Funktion:

function senddata($data, $filename, $mime) {
   $len = strlen($data);
   $header = "";
   $header .= "Content-Type: $mime\r\n";
   $header .= "Content-Disposition: attachment; filename="$filename"\r\n";
   $header .= "Accept-Ranges: bytes\r\n";
   $header .= "Content-Length: $len\r\n";
   header($header);
   echo $data;
   return true;
  }

Was ist da falsch?

Dank und Gruß
ottogal

  1. Hi,

    Was ist da falsch?

    Steht doch da:

    Warning: Header may not contain more than a single header, new line detected.

    Es geht dabei um diese Funktion:

    function senddata($data, $filename, $mime) {
       $len = strlen($data);
       $header = "";
       $header .= "Content-Type: $mime\r\n";
       $header .= "Content-Disposition: attachment; filename="$filename"\r\n";
       $header .= "Accept-Ranges: bytes\r\n";
       $header .= "Content-Length: $len\r\n";
       header($header);

    Na, da werden mehrere Header in einen String gepackt an die Funktion header uebergeben, was diese, wie du auch im Manual haettest nachlesen koennen, seit PHP Version 4.4.2 bzw. 5.1.2 nicht mehr mag.

    Also ganz einfach einzelne header-Aufrufe draus machen, und fertich.

    MfG ChrisB

    --
    „This is the author's opinion, not necessarily that of Starbucks.“
    1. Hi,

      Was ist da falsch?

      Steht doch da:

      Warning: Header may not contain more than a single header, new line detected.

      Der Fehler war schon klar, ich hätte fragen sollen: Wie beseitige ich ihn?

      function senddata($data, $filename, $mime) {
         $len = strlen($data);
         $header = "";
         $header .= "Content-Type: $mime\r\n";
         $header .= "Content-Disposition: attachment; filename="$filename"\r\n";
         $header .= "Accept-Ranges: bytes\r\n";
         $header .= "Content-Length: $len\r\n";
         header($header);

      Na, da werden mehrere Header in einen String gepackt an die Funktion header uebergeben, was diese, wie du auch im Manual haettest nachlesen koennen, seit PHP Version 4.4.2 bzw. 5.1.2 nicht mehr mag.

      Danke für die Präzisierung.

      Also ganz einfach einzelne header-Aufrufe draus machen, und fertich.

      Achso, mehrere header-Aufrufe hintereinander sind kein Problem? Dann vielleicht so:

      function senddata($data, $filename, $mime) {
         $len = strlen($data);
         header("Content-Type: $mime");
         header("Content-Disposition: attachment; filename="$filename"";
         header("Accept-Ranges: bytes");
         header("Content-Length: $len");
         echo $data;
         return true;
        }

      Bin nun mal ein PHP-Laie...

      Vielen Dank
      ottogal