Datei Download - Zählen und anzeigen

Hi,

Bevor hier noch ein Krieg ausbricht :-). sag ich noch mal was ich will.

Also ich möchte erst einen Download über die Headerfunktion starten.
Soweit so gut.
Danach soll die Anzahl der Downloads im Browser angezeigt werden.

Zur zeit ist es so das ich den Download über ein Button starte, d.h. die Seite wird neu geladen und es Wird abgefragt ob ich den Button angeklick habe
PHP:
if($_REQUEST["buttonblabla"])
{
...
}

Innerhalb des If - Blocks wird der Download gezählt und dann gestartet.
Weiter unten im <Body> wird dann die neu Downloadanzahl ausgegeben.
Da steckt auch schon das Problem denn Anscheinen Bricht alles nach dem Header ab.
Also es wird nur der Download gestartet.
Resultat ist das der Download gestartet wurde und die Seite unverändert bleibt.

Lösen wollte ich das ganze durch einen expliziten Header(Location "Selbe seite") Aufruf.
Das führte aber dazu das nur der Reload durchgeführt wurde nicht aber der Download.
Und nun möchte ich wissen wie ich beides vereinen kann (Erst Download Dann autom.Refresh).
 
hm nur so als idee:

neue seite mit dem download (so popup, sieht man öfters..) und die "haupt"-seite einfach refreshen?
 
Hihi, ich hatte Recht, trotzdem SORRY @ Stephan, ich bin heut ein bisserl zickig.

@ Author:
Andersrum würde es einfach gehen, allerdings sind abgebrochene Downlaods dann auch gezählt.

PHP:
if($_REQUEST['geklickterbutton'] && !$_REQUEST['do']=="download")
    header('Location:'.$_SERVER['PHP_SELF'].'?do=download');
if($_REQUEST['geklickterbutton'] && $_REQUEST['do']=="download")
    header('Location:URL zum Dwnload');
so in etwa.
 
beide hatten recht :p

:D du wolltest das download ereignis abrufen und "zuviel" machen und ich halt alles sehr "einfach"...

aber egal der junge hat das was er will und wir hatten unsern spass also schönen tag euch noch :D
 
Ceraph hat gesagt.:
Hihi, ich hatte Recht, trotzdem SORRY @ Stephan, ich bin heut ein bisserl zickig.

@ Author:
Andersrum würde es einfach gehen, allerdings sind abgebrochene Downlaods dann auch gezählt.

PHP:
if($_REQUEST['geklickterbutton'] && !$_REQUEST['do']=="download")
    header('Location:'.$_SERVER['PHP_SELF'].'?do=download');
if($_REQUEST['geklickterbutton'] && $_REQUEST['do']=="download")
    header('Location:URL zum Dwnload');
so in etwa.

Na ja das hätte zwar den Effekt das ich den Download zählen und starten kann ABER was ich euch glaube auch noch nicht erzählt habe ist das der Link zur Datei die heruntergeladen werden soll nicht sichtbar sein soll also Download nur über Header.

Auch wenn ich erst den Download zähle dann auf die selbe seite umlenke und dann den Donwload starte wird zwar alles gezählt und heruntergeladen ABER er zeigt die Seite nicht neu an weil er ja anscheinend immer wieder beim Header abbricht :( .
 
hm ok zufrüh gefreut :D


hm also dein ziel is mir zugegeben nicht 100% klar... aber ich versuch mal noch eine lösung..

da du ja ein paar dateien hast die von einer website gedownloadet werden sollen... und nicht zu vergessen der link unsichtbar sein soll...
würd ich es glaub jetzt so machen...

> eine allgemeine seite wo "zählt" und refresh und das ganze zeug... und das einzigste was du machst fuer den download > du öffnest in einem kleinem fensterle eine zb "download.php" datei und dieser gibst du dann zb den namen mit und diese startet dann den download...!
> link is unsichtbar , hauptseite hast keine probleme mehr mitm download , ....

? was haltet ihr davon
 
Ich bin kein JS- Freund, ich vermeide es, wo es nur geht.

Vielleicht gehts auch anders. Mir ist die "Wunschliste" klar,
was mir fehlt ist der Inhalt, den du nach dem header senden noch anzeigen willst.

Ist es nicht das einfachste, das zeugs woandern darzustellen oder was kommt da alles?
 
Hier mal ein Bild von der Lage :-)

Als auf dieser Seite soll der Download gestartet und auch gezählt werden.
 

Anhänge

  • downloadproblem.png
    downloadproblem.png
    5,5 KB · Aufrufe: 70
So, wie ich es schon angesprochen hatte:
PHP:
if($_REQUEST['geklickterbutton'] && !$_REQUEST['do']=="download")
    header('Location:'.$_SERVER['PHP_SELF'].'?do=download');
if($_REQUEST['do']=="download")
        $name = "test.zip";
        $url = "http://localhost/eclipse/BetauserBackend/Daten/test.zip";
        header("Content-type: application/force-download");
        header("Content-Disposition: attachment; filename=$name");
        readfile($url);
 
Ich werd es mal ausprobieren aber das ganze wird bestimmt nur ein doppelten Refresh auslösen aber jedesmal beim Header abbrechen.

Aber ich werd mal versuchen :-)
 
Zurück