Probleme mit Download per header

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

  • Probleme mit Download per header

    Das ist der Scriptteil, der den Download startet:

    PHP-Code:
     if (isset($_GET['downloadid']))  {
          
    $ergebnis mysql_query("SELECT * FROM ".$table_down." WHERE id='".$_GET['downloadid']."'");
          while ( 
    $datensatz mysql_fetch_array$ergebnis ) )  {
            
    $path $datensatz[pfad];
            
    header("Content-Type: application/octet-stream");
            
    header("Content-Disposition: attachment; filename=\"$datensatz[filename]\"");
            
    readfile($path);
      }

    Er ist mit folgendem Link eingebunden:
    http://localhost/panzer/homepage1b/i...el=afrikakorps
    Warning: Cannot modify header information - headers already sent by (output started at E:\xampplite\htdocs\panzer\homepage1b\menu_spiel.php:126) in E:\xampplite\htdocs\panzer\homepage1b\download_test2.php on line 19

    Warning: Cannot modify header information - headers already sent by (output started at E:\xampplite\htdocs\panzer\homepage1b\menu_spiel.php:126) in E:\xampplite\htdocs\panzer\homepage1b\download_test2.php on line 20

    19 und 20 sind die beiden header.

    Bei Zeile 126 der vorher eingebundenen menu_spiel.php befindet sich folgendes:
    PHP-Code:
        print("<a href=\"index.php\">Portal</a>");
        foreach(
    $defaultgames as $game)
          if (
    $game != $_GET['spiel'])
            print(
    " :|: <a href=\"index.php?spiel=".$game."\">".name_kurz($game)."</a>"); 
    Zeile 126 ist die mit dem Link. Wenn ich die a-Tags entferne funktioniert es.

    Komischerweise funktioniert es auch, wenn ich einen Download einer anderen Kategorie außer afrikakorps aufrufe, beispielsweise:
    http://localhost/panzer/homepage1b/i...=16&spiel=dday

    Da dürfte aber gar kein Unterschied sein.
    Hab die MYSQL Daten schon zich mal neu erstellt, aber immer das gleiche.
    Bei der einen Kategorie geht es nicht, bei allen anderen geht es.
    Habe schon überprüft ob mit "afrikakorps" irgendwo was ausgelößt wird, aber negativ!

    Sitz schon den ganzen Tag davor und weiß nicht weiter...

  • #2
    wenn du die fehlermeldung genau gelesen hättest, wüstest du das der header schon gesendet wurde.

    das heisst für dich, bevor du nicht den header vom downloadscript gesendet hast darfst du kein ausgabe machen (print , echo ...)



    mfg Roland
    Onlie Browsergame: http://www.war-of-empire.de <-- 2. Weltkrieg

    Kommentar


    • #3
      Das weiß ich eigentlich auch,
      warum aber geht es dann wenn ich anstatt "afrikakorps" irgendeine andere kategorie nehm oder einfach in zeile 126 das a-tag weg lass.

      Da sind vorher dann auch ganz viele html ausgaben, und print befehle....

      Kommentar


      • #4
        Output Buffering?
        Für alle die Fehler suchen, gibts gratis tolle Debuggingmöglichkeiten:
        var_dump(), print_r(), debug_backtrace und echo.
        Außerdem gibt es für unsere Neueinsteiger ein hervorragendes PHP Tutorial zu PHP 4 und PHP 5 (OOP)
        Es heißt $array['index'] und nicht $array[index]! Und nein, das ist nicht egal!
        Dieses Thema lesen, um Ärger im Forum und verzögerte Hilfen zu vermeiden.

        Kommentar


        • #5
          Original geschrieben von Shurakai
          Output Buffering?
          nö, wozu?
          wenn vorher schon ausgaben erfolgen, würden die ja mit im donwload-file landen, und das ist sicher nicht gewollt.

          ok, buffer vorher clearen ginge auch - aber unfug.
          wozu ausgaben machen, die nicht ausgegeben werden sollen.
          was es braucht, ist eine ordentliche struktur.
          wenn der download davon abhängig gemacht wird, ob $_GET['downloadid'] existiert - dann soll er halt die ausgaben vom gegenteil abhängig machen.
          I don't believe in rebirth. Actually, I never did in my whole lives.

          Kommentar


          • #6
            Original geschrieben von wahsaga
            wenn der download davon abhängig gemacht wird, ob $_GET['downloadid'] existiert - dann soll er halt die ausgaben vom gegenteil abhängig machen.
            Dann würde der Download zwar starten , aber man hätte entweder eine weiße seite oder ein sich neu öffnenden leeres fenster, oder?

            Kommentar


            • #7
              Original geschrieben von raudi
              Dann würde der Download zwar starten , aber man hätte entweder eine weiße seite oder ein sich neu öffnenden leeres fenster, oder?
              nö.
              wenn sich die angeforderte ressource nicht innerhalb des browsers darstellen lässt, so hat dieser das gegenwärtig angezeigte dokument weiterhin anzuzeigen.

              ein browser, der das anders macht, wäre defekt.
              I don't believe in rebirth. Actually, I never did in my whole lives.

              Kommentar


              • #8
                Original geschrieben von wahsaga
                nö.
                wenn sich die angeforderte ressource nicht innerhalb des browsers darstellen lässt, so hat dieser das gegenwärtig angezeigte dokument weiterhin anzuzeigen.

                ein browser, der das anders macht, wäre defekt.
                Ich glaube du hast mich gerade von einem Denkfehler befreit.
                Danke!

                Kommentar

                Lädt...
                X