Announcement

Collapse
No announcement yet.

PHP & fputcsv Problem

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • PHP & fputcsv Problem

    Hallo Leute,

    ich hab ein kleines Problem. Ich mache mittels PHPplot eine grafische Auswertung. Dazu habe ich 2 Buttons, einen für die Auswertung und den anderen um die Daten als CSV herunterzuladen.

    Mein Problem ist, das der CSV Export nur dann funktioniert wenn ich den Export in eine extra PHP Datei packe.
    Wenn der Export auf der Hauptseite ist, dann startet kein Download sondern die Ausgabe wird einfach unten auf meiner Seite angezeigt, obwohl ich kein Echo gesetzt habe.
    Mein Code:
    PHP Code:
    <?php

    if(isset($_POST['Auswerten'])){
        if (
    $_POST['from'] !== ""  ) {
            if (
    $_POST['to'] !== ""  ) {
                echo 
    "hier auswertung starten";
            } else {
                    echo 
    "Datumsfeld BIS ist ungültig!";
            }
        } else {
                echo 
    "Datumsfeld VON ist ungültig!";
        }
        
    } elseif(isset(
    $_POST['Download'])){

            
    // output headers so that the file is downloaded rather than displayed
            
    header('Content-Type: text/csv; charset=utf-8');
            
    header('Content-Disposition: attachment; filename=data.csv');

            
    // create a file pointer connected to the output stream
            
    $output fopen('php://output''w');

            
    // output the column headings
            
    fputcsv($output, array('Spalte1''Spalte2''Spalte3'));

            
    // fetch the data
            
    mysql_connect('localhost''root''12345678');
            
    mysql_select_db('db1');
            
    $rows mysql_query("SELECT Menge, Datum, dMenge FROM AHistory Where Typ ='Auto'");

            
    // loop over the rows, outputting them
            
    while ($row mysql_fetch_assoc($rows)) fputcsv($output$row);    
            
            
    fclose($output);
    }
    ?>
    Habt ihr eine Idee woran das liegen kann?

  • #2
    Weil ein Response nur einen Content enthalten kann. Durch "echo"-Ausgaben, Leerzeichen, Tabs oder auch Kommentare ist dann im Response schon Inhalt. Dann kann kein anderer Content hier text/csv übermittelt werden.

    http://php.net/manual/de/function.header.php
    Zuletzt editiert von Christian Marquardt; 13.12.2016, 11:50.
    Christian

    Comment


    • #3
      Hab mir den Link bzw den Inhalt dahinter durchgelesen, aber.... Verstehen tu ich das nicht wirklich und es lösst mein Problem nicht. Werde das wohl in eine leere PHP-Datei einbauen, das funktioniert ja.

      Comment


      • #4
        Ich wüsste auch nicht, was bei einem Download groß an Fallunterscheidungen passieren muss.
        Das gehört für mich in eine eigene Datei.
        PHP rocks!
        Eine Initiative der PHP Community

        Comment

        Working...
        X