Gå til innhold

Download Counter


Anbefalte innlegg

Skrevet

Lurte på om det var en enkel kode i php for å telle hvor mange ganger ei bestemt fil (*.exe *.zip *.rar) har blitt lasta ned. Samt da å kjøre det ut på sia igjen. ( det blir vel bar med en echo)

Videoannonse
Annonse
Skrevet

alle downloa-linker går til download.php?file=filnavn i stede fordirekte til filen.

 

----------*****download.php*****-----------

if(empty($file)) exit;

$fp = fopen("logg.txt", 'a+');

fputs($fp, "$filen");

fclose($fp);

print('<meta http-equiv="refresh" content="0; URL='.$file.'">');

----

 

Dette scriptet legger til filnavnet som blir lastet ned i logg.txt. Telling kan jeg evt komme tilbake senere, for å må jeg dra til gymmen!

Skrevet

takk for hjelpen jeg skal få prøvd det. Men så skal jeg mase litt til.

 

Hadde det vært mulig for deg å lagd en beskrivelse yil scriptet?

Slik at jeg kan lære noe av det og ikke bare får det.

Selv synes jeg ikke noe om å bare gi bort til folk som bare bruker det uten å prøve å lære noe av det. Regner med at det er fler av oss.

 

Håper du gidder :)

Skrevet

Glem koden over! Her er resultatet av litt mer mekking :) logg.txt vil nå ha dette formatet:

filnavn|antall klikk|

f.eks.:

film1.avi|5|

film2.avi|12|

 

Bare pass på og chmod logg.txt til 646 så scriptet kan lese/skrive den.

 

<?php

if(empty($file) || !FILE_EXISTS($file)) exit; //Sjekker at filen finnes.

$tal = "0"; //Setter $tal til 0 (brukes for å lese filen)

$fil = file("logg.txt"); //Leser filen inn i $fil. $fil[0] er første

//linje $fil[1] er den andre, osv...



while($fil[$tal]) //Gjør en loop gjennom alle linjene i $fil(logg.txt)

{

 $a = explode("|", $fil[$tal]); //Deler $fil[$tal] ved

 //tegnet |. $a[0] er filnavnet, $a[1] er antall klikk.

 if($a[0] == $file) //Sjekker om vi er på riktig linje.

 {

   $a[1]++; //Øker antall klikk med 1.

   $fil[$tal] = implode($a, "|"); //implode er det motsatte av explode.

 }

 $tal++; //Øker $tal med 1 for å lese neste linje.

}

$a = implode($fil, ""); //Imploderer $fil[0, 1, osv] inn i $a.

$fp = fopen("logg.txt", 'w'); //Åpner logg.txt og sletter alt som står der.

fputs($fp, $a); //Skriver $a til logg.txt

fclose($fp); //Lukker filen.

print('<meta http-equiv="refresh" content="0; URL='.$file.'">');

Skrevet

de filer som jeg vil ha telling på ligger i ei mappe kaldt download

så stien bli jo da /download/fil.exe

 

men download.php må vel ligge i root ? eller kan den ligge i download mappa?

 

for hvis den ikke ligger i samme mappe som filen vil vel ikke download.php?file=fil.exe funke?

 

edit start

jeg prøvde å legge download.php, fil.exe og logg.txt i smamme mappe (download)

 

der etter linka jeg til fina sånn : download/sownload.php)file=fil.exe

da lasta den ned men skreiv ikke til txt fila.

Jeg chmoda også txt fila til 646 ( dobbel sjekka)

edit slutt

Skrevet

Du bør legge logg.txt og download.php i root. Hvis du skal ha alle nedlastbare filer i en egen mappe, fåreslår jeg å forandre

print('<meta http-equiv="refresh" content="0; URL='.$file.'">');

til

print('<meta http-equiv="refresh" content="0; URL=/download/'.$file.'">');

 

...hvis mappen heter download, da.

 

Linkene skal gå til download.php?file=fil.exe

Skrevet

Jeg vet desverre ikke hvorfor den ikke skriver til fila. :( Men jeg ville gått over det jeg hadde gjort én gang til, hvis jeg var deg... Det funker helt fint her :D

 

Bare for å være heeelt sikker på den chmoddinga kan du jo prøve 777...

Skrevet

får det ikke til jeg :(

 

nå vil den ikke laste ned lenger etter at jeg gjorde som du sa.

 

Driver å jobber med et ASP prosjekt og så det blit liksom ikke så mye tid til hjemmesida om dagen. Men prøver litt i ny og ne....

 

Men takk for at du prøver :woot::D

Skrevet

Sorry, my mistake! Her er koden som faktisk funker! :woot: (asp? hm...)

 

<?php

if(empty($file)) exit;

if(!FILE_EXISTS("download/$file"))

{

 echo "File doesn't exist!";

 exit;

}

$tal = "0";

$fil = file("logg.txt");

while($fil[$tal])

{

 $a = explode("|", $fil[$tal]);

 if($a[0] == $file)

 {

   $a[1]++;

   $fil[$tal] = implode($a, "|");

   $done = '1';

 }

 $tal++;

}

$a = implode($fil, "");

$fp = fopen("logg.txt", 'w');

if($done == '1')

{

 fputs($fp, $a);

}

else

{

 fputs($fp, "$an$file|1|");

}

fclose($fp);

print('<meta http-equiv="refresh" content="0; URL=download/'.$file.'">');

?>

Skrevet

:woot: yeah da hjalp det

 

Tussen takk. Skal jeg prøve å lære lit av detta og... se hva jeg klarer

 

Ja vi har ASP prosjekt på skolen, lager ei web side for DreamBox, med masse fancy

Skrevet

Vil her ta muligheten til å rose Plastbox for sin innsats, hyggelig å se at folk er så hjelpsomme.. :D

 

*fortsetter å lese wrox: Begining PHP*

Skrevet

Bare hyggelig :smile:

 

Men, tilbake til spørsmålet. Denne var betydelig lettere. Scriptet under printer hele filens innhold i en fin liten tabell. Gidder ikke forklare noe denne gangen. Det meste her er bare klipp og lim fra det forrige scriptet.

 

<?php

$tal = "0";

$fil = file("logg.txt");

echo "<table border=1 bordercolor=#666666><tr><td width=100>Filename</td><td width=100 align=right>Downloaded</td></tr>";

while($fil[$tal])

{

 $a = explode("|", $fil[$tal]);

 echo "<tr><td>$a[0]</td><td align=right>$a[1]</td></tr>";

 $tal++;

}

echo "</table>";

?>

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...