Avatar billede fire-fox Nybegynder
14. juni 2006 - 05:40 Der er 3 kommentarer og
1 løsning

Antal download

Heysan!

Jeg ved godt spørgsmålet har vært oppe tidligere men jeg fik aldrig løst det ordenlig, så jeg prøver igen :-)

Jeg vil gerne have et system som tæller antal download det er bleven hentet... Og vil blive meget glad hvis nogen vil lave guide til hvordan det skal sættes sammen :-)

På forhånd tak

og go sommer :D
Avatar billede loevgaard Praktikant
14. juni 2006 - 09:48 #1
Hver gang man trykker på et downloadlink, skal den tælle én op, er det det du mener?
I så fald:

<a href="dl.php?ID=1">Download</a>

dl.php:
if(is_numeric($_GET['ID'])) {
$data = mysql_query("HENT DATA OM DOWNLOAD LINK");
# TJEK OM DET FINDES
if(mysql_num_rows($data) > 0) {
  $row = mysql_fetch_assoc($data);
  header("Content-type: filtype");
  header("Content-Disposition: attachment; filename=".$fil);
  readfile($fil);
}
}
Avatar billede Slettet bruger
14. juni 2006 - 09:58 #2
Måske der også skulle selve counteren ind :-)
Jeg udvider lige dit eksempel l0vgaard.

1. For at lave det, skal du have informationer omkring dine filer i en database, som du formentlig allerede har. I den tabel, tilføjer du et ekstra felt kaldet f.eks. hits.

2. På siden hvor du laver linket som brugeren trykker på, kan du så også vise indholdet af hits, som vil være det antal gange filen er downloaded før.

3. Som l0vgaard siger, så skal du istedet for at linke direkte til filen, lave et link til en anden fil, f.eks. dl.php. Det id du så ser i ovenstående eksempel, vil være idét på selve filen.

4. Det scriptet gør, er at det ser om den get variabel er et tal, dernæst henter det informationer fra databasen omkring den enkelte fil. Hvis idét findes, kommer der en "gem som" boks frem.
Dog mangler der lige en væsentlig linje, da den ikke opdaterer antal downloads. Så scriptet skal lige have tilføjet en ekstra linje som nedenfor, hvis vi antager at feltet hedder hits.


if(is_numeric($_GET['ID'])) {
$data = mysql_query("HENT DATA OM DOWNLOAD LINK");
# TJEK OM DET FINDES
if(mysql_num_rows($data) > 0) {
  $row = mysql_fetch_assoc($data);
  mysql_query("UPDATE tabel SET hits = hits + 1 WHERE id = '$row[id]'");
  header("Content-type: filtype");
  header("Content-Disposition: attachment; filename=".$fil);
  readfile($fil);
}
}
Avatar billede fire-fox Nybegynder
14. juni 2006 - 19:50 #3
Cypermann >> 1. For at lave det, skal du have informationer omkring dine filer i en database, som du formentlig allerede har. I den tabel, tilføjer du et ekstra felt kaldet f.eks. hits.

- Nej har jeg ik hvordan gør man det o_O
Avatar billede loevgaard Praktikant
14. juni 2006 - 21:02 #4
Hvis du ikke ved noget om MySQL er dne letteste løsning nok at lave en .log-fil, der hedder det samme som den fil, man downloader, og så gemme antal hits i den.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester