Pagina 1 din 2

Contoar downloads, nr click-uri

Scris: Mie Apr 20, 2011
de trif
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

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;
}
?>
si

Cod: Selectaţi tot

<?php @include("nrclick.php"); ?>
<a href="nrclick.php?url=download/program.zip">Download</a>
<?php echo showclicks("download/program.zip"); ?>
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

Contoar downloads, nr click-uri

Scris: Joi Apr 21, 2011
de MarPlo
Poate e de folos script-ul / clasa PHP de la pagina Contoar downloads si accesari
Salveaza in tabel MySQL si afiseaza numar accesari / Downloads fisiere, si data ultimei accesari la fiecare.

Contoar downloads, nr click-uri

Scris: Vin Apr 22, 2011
de trif
salut, am facut asa

Cod: Selectaţi tot

$sql = "UPDATE `". $this->tb_name. "`  SET (`". $this->tb_cols['urlf']. "`) =('$urlf') WHERE`". $this->tb_cols['nrac']. "`=`". $this->tb_cols['nrac']. "`+1";
dar imi da eroarea Eroare: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '(`urlf`) =('../cantari/diverse/diverse.ppt') WHERE`nrac`=`nrac`+1' at line 1
Warning: Cannot modify header information - headers already sent by (output started at
nu stiu de ce. cu stima trif

Contoar downloads, nr click-uri

Scris: Sâm Apr 23, 2011
de MarPlo
Incearca sintaxa de Update asa:

Cod: Selectaţi tot

$sql = "UPDATE `". $this->tb_name. "`  SET `". $this->tb_cols['nrac']. "`=(`". $this->tb_cols['nrac']. "`+1) WHERE `". $this->tb_cols['urlf']. "`='$urlf'";

Contoar downloads, nr click-uri

Scris: Sâm Apr 23, 2011
de trif
salut, multumesc mult de tot, merge super bine. cu stima trif

Contoar downloads, nr click-uri

Scris: Lun Mai 02, 2011
de nutzu123
Salut,

Scriptul https://marplo.net/php-mysql/contoar ... sari nu merge. Am introdus corect datele de la mysql si degeaba k nu isi creeaza baza de date. Era mai bine un fisier.sql cu baza de date, am incercat mai de multe ori si nu functioneaza adica nu isi creaza baza de date ;)

Contoar downloads, nr click-uri

Scris: Lun Mai 02, 2011
de MarPlo
Da vreo eroare ceva?
Poti folosi urmatoarea comanda sql pt. crearea tabelului:

Cod: Selectaţi tot

CREATE TABLE `access` (
     `urlf`  VARCHAR(88) PRIMARY KEY NOT NULL,
     `nrac` INT(8) UNSIGNED DEFAULT 1,
     `dt` TIMESTAMP
    ) CHARACTER SET utf8 COLLATE utf8_general_ci

Contoar downloads, nr click-uri

Scris: Lun Mai 02, 2011
de nutzu123
Fatal error: Call to a member function getAccess() on a non-object in

Si nu merge nici functia
// verifica daca in $db exista tabelul din $tb_name
// daca nu exista, apeleaza metoda setTable() ca sa creeze tabelul
bine am folosit

Cod: Selectaţi tot

CREATE TABLE `access` (
     `urlf`  VARCHAR(88) PRIMARY KEY NOT NULL,
     `nrac` INT(8) UNSIGNED DEFAULT 1,
     `dt` TIMESTAMP
    ) CHARACTER SET utf8 COLLATE utf8_general_ci

Contoar downloads, nr click-uri

Scris: Lun Mai 02, 2011
de MarPlo
Problema nu e ca nu merge scriptul, lui trif ii functioneaza. Probabil nu e utilizata clasa cum trebuie.
Ori nu e inclus cum trebuie fisierul cu clasa CountAccess.
Ori methoda clasei getAccess() e apelata inaintea obiectului clasei.
Ca indicatie, daca vrei sa inveti, sunt lectii pe site despre Clase si obiecte in PHP, incepand cu PHP OOP - Clase si Obiecte, Metoda constructor.

Contoar downloads, nr click-uri

Scris: Lun Mai 02, 2011
de nutzu123
Am rezolvat cu totul merge bine scriptul imi contorizeaza corect click-urile in mysql dar am dat peste o noua problema la afisarea click-urilor si in ce dara :(

Cod: Selectaţi tot

<a href="down.php?urlf=director/$fisier" title="descarca">descarcat</a>
<?php echo $objCA->getAccess('director/$fisier'); ?>
warning division by zero


Daca pun manual numele fisierului descarcat ex:

Cod: Selectaţi tot

<?php echo $objCA->getAccess('director/poza0023.jpg'); ?>
imi merge afisarea click-urilor si data. :?

Contoar downloads, nr click-uri

Scris: Lun Mai 02, 2011
de MarPlo
Daca $fisier e o variabila PHP a carei valoare vrei sa o adaugi /afisezi intr-un link HTML, trebuie sa folosesti cod PHP pt. afisare:
Cod <?php echo $variabila; ?> HTML
de asemenea, $variabila nu intre ghilimele simple.
In codul tau, mai corect ar fi:

Cod: Selectaţi tot

<?php $thefile = 'director/'. $fisier; ?>
<a href="down.php?urlf=<?php echo $thefile; ?>" title="descarca">descarcat</a>
<?php echo $objCA->getAccess($thefile); ?>

Contoar downloads, nr click-uri

Scris: Lun Mai 23, 2011
de trif
salut, cred ca am reusit, nu am stiut cum sa fac cu ob

Cod: Selectaţi tot

$objCA->getAccess
dar am facut asa simplu si la subiect

Cod: Selectaţi tot

<?php
$sql="SELECT * FROM cantari_ppt ORDER BY id DESC LIMIT 11"; 
$res=mysql_query($sql);
while($rand=mysql_fetch_array($res)) {
   print '<a href="class.CountAccess.php?urlf='.$rand['urlf'].'">'.$rand['denumire'].'</a> -- ';
	print 'Accesari: '.$rand['nrac'].' ultima in: '.$rand['dt'].' ';
   print '<br>';
}
?>
si acum nici nu se mai insereaza in plus nimic. daca era alta varianta puteti sa imi ziceti si mie. va multumesc. cu stima trif