Contoar downloads, nr click-uri
Scris: Mie Apr 20, 2011
salut, am o mica problema si nu stiu cum sa o fac si apelez la tine ca tu cunosti cel mai bine codul, am descarcat scriptul cu nrclick si merge super bine dar am o mica dorinta cum pot modifica acest cod si
ca sa nu imi salveze in fisier text ci in bd. te rog ajuta-ma ca am mare nevoie de ea ca problema cu care ma confrunt acum de asta atarna si no imi trebuie ca sa preia din bd. cu stima trif
Cod: Selectaţi tot
<?php
$nrclickFile = "nrclick.txt"; // Numele fisierului care stocheaza nr. de clickuri.
$campul = 0;
// Verifica daca preluarea adresei url e pozitiva, in caz afirmativ prelucreaza datele
if(isset($_GET['url'])) {
$url = $_GET['url']; // Preia adresa url din link.
$fisier = fopen($nrclickFile, 'r+b');
flock($fisier, LOCK_EX); // Blocheaza fisierul
// Citeste fisierul de stocare linie cu linie pentru gasirea cimpului cu URL-ul.
while($citeste = fgets($fisier)) {
if(!strcmp($citeste, $url."\n")) { // Compara linia gasita cu url-ul (daca sunt egale 'strcmp'=0)
$reda = ftell($fisier); // Returneaza pozitia curenta a pointer-ului
$nrclick = fgets($fisier); // Preia data (nr.) care se afla pe linia imediat dupa pozitia gasita de 'ftell'
$nrclick = 1 + "$nrclick"; // Mareste nr. de clickuri cu o unitate
fseek($fisier, $reda); // Seteaza noua pozitie a pointerului (de la inceputul fisierului in bytes) la nivelul precizat de 'ftell', pt a adauga in locul corect noua valarea de click-uri
fputs($fisier, "$nrclick"); // 'fputs' este un alia a lui 'fwrite' (scrie noua valoare)
$campul = 1;
}
}
// Daca nu a fost gasit linia cu URL-ul, atunci scrie in fisier un camp cu URL-ul.
if(!$campul) {
fwrite($fisier, $url."\n"); // Scrie url-ul si adauga o noua linie
fputs($fisier, "1"." \n"); // Adauga nr. clickuri 1 in linia imeiat dupa url
}
@flock($fisier, LOCK_UN); // Deblocheaza fisierul
fclose($fisier);
// Redirectioneaza browserul spre url-ul preluat $_GET
header("Location: " . $url);
}
// Functie pentru afisarea numarului de click-uri.
function showclicks($numeurl) {
$nrclick = 0;
global $nrclickFile; // introduc numele fisierului in functie
$fisier = fopen($nrclickFile, 'r'); // Eschide fisierul
while($citeste = fgets($fisier)) { // Parcrge fisierul linie cu linie
if(!strcmp($citeste, $numeurl."\n")) { // Gaseste pointer-ul liniei cu url-ul si-l stabileste la urmatoarea linie
$nrclick = fgets($fisier); // Preia datele Nr. din locul pointer-ului stabilit anterior
break; // Opreste parcurgerea fisierului
}
}
fclose($fisier);
return $nrclick;
}
?>
Cod: Selectaţi tot
<?php @include("nrclick.php"); ?>
<a href="nrclick.php?url=download/program.zip">Download</a>
<?php echo showclicks("download/program.zip"); ?>