readfile()

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

  • #16
    dann muss aber auch sichergestellt sein, dass ich keine meldung bekomme, wenn du deinen download abbrichst

    hauptscript ist ja schließlich hauptscript...
    Ich denke, also bin ich. - Einige sind trotzdem...

    Kommentar


    • #17
      ... mein Auto fährt nur wenn Sprit im Tank ist ...

      Hans Kuhlen

      Kommentar


      • #18
        das ist bei vielen autos so

        was hat das damit zu tun?
        Ich denke, also bin ich. - Einige sind trotzdem...

        Kommentar


        • #19
          Original geschrieben von fiderallalla
          header() müssen gesetzt werden bevor etwas anderes an den Browser gesendet wird.
          http://de3.php.net/header

          Du bekommst keine Fehlermeldung für die header() Anweisung, da die shutdown-Funktion aufgerufen
          wird wenn alles abgearbeitet worden ist - das Script also zu Ende (terminiert) ist.

          Du mußt also anders an die Sache herangehen.

          Teile die Scripte auf:
          - ein Script für Dateioperationen und Download.
          Am Ende läßt Du den Status des Downloads irgendwo registrieren.
          - in einem anderen Script (Dein Hauptscript?) läßt du den registrierten Status auswerten.

          Hans Kuhlen

          bin zwar kein anfänger mehr, aber das thema ist mir fremd.. ich weiß nicht wie ich das anstellen soll mit der verwendung...

          Es kommt nicht darauf an, mit dem Kopf durch den Monitor zu rennen,
          sondern mit den Augen das Manual zu lesen.

          Kommentar


          • #20
            das was ich erreichen möchte, ist das nach einem beendeten download eine sql-update durchgeführt wird, und dass eine umleitung stattfindet..


            im übrigen macht er nach readfile() gar nichts mehr.. nicht mal eine fehlerhafte mysql_query() mit mysql_error() ..?
            Zuletzt geändert von xManUx; 17.08.2004, 10:15.

            Es kommt nicht darauf an, mit dem Kopf durch den Monitor zu rennen,
            sondern mit den Augen das Manual zu lesen.

            Kommentar


            • #21
              das was ich erreichen möchte, ist das nach einem beendeten download eine sql-update durchgeführt wird,
              PHP-Code:
              function shutdown() {
                  
              $query "UPDATE bilder SET status='".connection_aborted()."' ...";
                  [...]
              }

              register_shutdown_function('shutdown');
              if ( !isset(
              $_GET['filename']) )         die("No filename!");
              if ( !
              file_exists($_GET['filename']) )    die("No souch file or permission denied!");

              header( ... );
              readfile($_GET['filename']); 
              In diesem Beispiel wird - vorausgesetzt es wird ein Dateiname
              übergeben und die Datei existiert - bei erfolgreichem Download in der
              sql-query bei status der Wert 0 stehen, und bei einem Abbruch eine 1.


              im übrigen macht er nach readfile() gar nichts mehr.. nicht mal eine fehlerhafte mysql_query() mit mysql_error() ..?
              Ja das ist korrekt. Du bekommst innerhalb der Shutdown-Funktion
              nichts mehr angezeigt, keine Fehler, rein garnichts.
              Die Shutdown-Funktionen treten in Kraft, wenn ein Status über das
              Verbindungsende zwischen Server und Client (z. B. Browser) vorliegt,
              das mußt Du Dir begreiflich machen.

              und dass eine umleitung stattfindet..
              Umleitungen gehören nicht zu den Fähigkeiten von PHP.
              Umleitungen sind nur Features des Browsers. PHP kann nicht umleiten.
              Du kannst mittels PHP einen Header setzen, z. B. "Location http://bla.fa.sel/".
              Damit kann jedoch nur der Browser etwas anfangen - wenn er es unterstützt.

              Hans Kuhlen

              Kommentar


              • #22
                wird wenn alles abgearbeitet worden ist - das Script also zu Ende (terminiert) ist.
                Das ist natürlich Quatsch, sorry, hab mich hier vertan.
                Natürlich ist das Script noch nicht zu ende - sonst könnte
                keine shutdown-Funktion mehr arbeiten. Die Shutdown Funktionen
                arbeiten erst, wenn ein Status über das VerbindungsENDE vorliegt - und damit ist nicht das Scriptende gemeint.

                Hans Kuhlen

                Kommentar


                • #23
                  reihenfolge etc. hatte ich schon.. ich werds auch nochmal versuchen.. aber was mir gerade noch konkret auffällt..

                  beim downloaden: geschätzte dauer: unbekannt(bisher:blah kb)

                  wieso unbekannt? liegts vielleicht daran? also ich versuchs jetzt nochmal

                  Es kommt nicht darauf an, mit dem Kopf durch den Monitor zu rennen,
                  sondern mit den Augen das Manual zu lesen.

                  Kommentar


                  • #24

                    Ja das ist korrekt. Du bekommst innerhalb der Shutdown-Funktion
                    nichts mehr angezeigt, keine Fehler, rein garnichts.
                    Die Shutdown-Funktionen treten in Kraft, wenn ein Status über das
                    Verbindungsende zwischen Server und Client (z. B. Browser) vorliegt,
                    das mußt Du Dir begreiflich machen.

                    außerhalb der function auch nicht, vor dem readfile() ja, danach nicht auch wenn ich das direkt drunter schreiben würde.. hat das seine richtigkeit?

                    Es kommt nicht darauf an, mit dem Kopf durch den Monitor zu rennen,
                    sondern mit den Augen das Manual zu lesen.

                    Kommentar


                    • #25
                      endlich mal eine gute nachricht!

                      es hat geklappt und funzt so wie es soll!

                      danke an alle!

                      kP warum es beim ersten mal nicht ging.. +schulterzuck+

                      hoffe es haben hier einige was dazu gelernt, denn meine forum-suche war bisher erfolglos!! ( aus den resultaten )

                      allerdings bleibt noch die frage offen, wieso er bei der geschätzen dauer das unbekannte drin hat.. ?

                      @ fiderallalla

                      thx.. hab heute wieder was neues gelernt! ;D

                      Es kommt nicht darauf an, mit dem Kopf durch den Monitor zu rennen,
                      sondern mit den Augen das Manual zu lesen.

                      Kommentar


                      • #26
                        Original geschrieben von xManUx
                        allerdings bleibt noch die frage offen, wieso er bei der geschätzen dauer das unbekannte drin hat.. ?
                        weil die gesamtgröße nicht bekannt ist.

                        wenn du eine datei über einen einfachen link runterlädst, schaut der server die dateigröße nach und liefert einen entsprechenden header mit.
                        in deinem script musst du das aber selber machen.

                        "Content-length" wäre das stichwort.
                        I don't believe in rebirth. Actually, I never did in my whole lives.

                        Kommentar


                        • #27
                          Original geschrieben von wahsaga
                          weil die gesamtgröße nicht bekannt ist.

                          wenn du eine datei über einen einfachen link runterlädst, schaut der server die dateigröße nach und liefert einen entsprechenden header mit.
                          in deinem script musst du das aber selber machen.

                          "Content-length" wäre das stichwort.

                          oki.. danke!! funzt!

                          habe die reihenfolge so:


                          PHP-Code:
                           header("Content-type: application/$application");
                            
                          header("Content-Disposition: attachment; filename=".$dateiname.".".$application."");
                             
                          header("Content-length: ".$size.""); 
                          sollte man bei der reihenfolge grundsätzlich was beachten? ich mein, sollte man eine bestimmte reihenfolge einhalten, dass evtl. andere browser das nicht missverstehen?

                          Es kommt nicht darauf an, mit dem Kopf durch den Monitor zu rennen,
                          sondern mit den Augen das Manual zu lesen.

                          Kommentar

                          Lädt...
                          X