Download aufrufen und zählen in PHP
Christian
- php
Hallo,
ich habe bereits letzte Woche zu einem Thema nachgefragt. Leider bin ich nach Sonntag nicht mehr dazu gekommen mich um selbiges zu kümmern. Und nun ist das eigentliche Thema im Archiv und geschlossen.
(http://forum.de.selfhtml.org/archiv/2008/7/t174201/#m1144168)
Also - es ging darum:
Ich will aus einer Datenbank entsprechend einer Suchvorgabe Daten in ein Formular eingeben und anderem auch einen Download-Link, denn ich hinter einen Button definiert habe. Den Link habe ich so also nur als Variable, in der der aus der Datenbank ausgelesene Link steht. Wenn ich auf den Button klicke soll aber nicht nur der Download gestartet werde, sondern auch die Downloadanzahl in der DB um eins erhöht werden.
Nun hatte mir Rouven diesen Link empfohlen:
http://www.php-faq.de/q/q-datei-download.html
Abgesehen davon, dass ich das Script nicht in vollem Umfang verstehe, scheint es mir nix zu nützen, wenn die Download Links hinter Variablen aus der Datenbank sich verstecken und noch dazu in den allermeisten Fällen nicht auf dem eigenen Server sind, sondern bei verschiedenen Fileshare-Anbietern liegen. Wie kann ich die dann aufrufen?
Fürs hochzählen hatte mir ja Dennis noch einen Hinweis gegeben, den ich natürlich dankend annehme. Bin halt noch Laie in Sachen PHP. Aber nur Übung macht ja bekanntlich den Meister.
"
$sql = "UPDATE media SET anzahldl = anzahldl + 1 WHERE id = '" . mysql_real_escape_string($nid) . "'";
$result = mysql_query($sql);
if ($result === false) {
// Fehlerbehandlung!
}"
Nur eine Sache brauche ich glaube ich nicht unbedingt. In der Variable ID steht die ID so wie Sie aus der DB ausgelesen wird. Ich denke nicht, dass ich dann die noch escapen muss. Es bleibt ja so oder so die selbe Zahl, die nur fürs auslesen, zuordnen und updaten verwendet aber selbst nicht verändert wird.
Ich hoffe irgendwer kann mir in Sachen Downdloads jetzt noch auf die Sprünge helfen.
Ach ja - wie rufe ich denn dann das PHP-Script für den Download und das Zählen über den Button auf? Geht das über POST? Sorry, falls die Fragen etwas Dumm rüberkommen, aber beschäftige mich halt noch nicht wirklich lange mit PHP, bin aber sehr lernfähig.
Nächtliche Grüße
Christian
Hello,
was willst Du denn wirklich zählen?
Den Downloadversuch oder den vollständigen Download?
Wenn Du den Erfolgsfall zählen willst, benötigst Du vermutlich einen Proxy, also ein Stück Programm, dass das File beschafft (auch vom fremden Server), es zwischenspeichert und dann an den Client ausliefert. Dann kannst Du auch den User-Abort prüfen.
Über den Button, den Du in das Dokument eingebaut hast, kannst Du dann ganz normal einen request auslösen, der deine Download-Hauptfunktion startet.
Liebe Grüße aus Syburg bei Dortmund
Tom vom Berg
Hello,
was willst Du denn wirklich zählen?
Den Downloadversuch oder den vollständigen Download?
Ich will schon die Klickst zählen. Denn damit wird ja quasi schon die Datei abgerufen - egal ob man sie dann speichert oder nicht.
Wenn Du den Erfolgsfall zählen willst, benötigst Du vermutlich einen Proxy, also ein Stück Programm, dass das File beschafft (auch vom fremden Server), es zwischenspeichert und dann an den Client ausliefert. Dann kannst Du auch den User-Abort prüfen.
Was meint Erfolgsfall?
Über den Button, den Du in das Dokument eingebaut hast, kannst Du dann ganz normal einen request auslösen, der deine Download-Hauptfunktion startet.
Hmm, genau da hakt es. Wie genau bastel ich mir diesen Request? Mit dem müssten man ja dann gleichzeitig, den Abruf des Downloads in der Variable #link und den SQL-Aufruf zum Updaten des Feldes #anzahdl im Datensatz mit der ID #id ausgelöst werden?