Gå til innhold

Download Counter


Anbefalte innlegg

Videoannonse
Annonse

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!

Lenke til kommentar

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 :)

Lenke til kommentar

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.'">');

Lenke til kommentar

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

Lenke til kommentar

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

Lenke til kommentar

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...

Lenke til kommentar

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

Lenke til kommentar

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.'">');

?>

Lenke til kommentar

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>";

?>

Lenke til kommentar

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...