[ covjek @ 06.08.2006. 01:33 ] @
Imam na sajtu nek slike i zelio bih postaviti brojac klikova, znaci svaki puta kada netko klikne odredjenu sliku da se odbroji i da se konacni zbroj klikova za tu sliku odmah prikaze na stranici. Volio bih da bude nesto jednostavno da se sprema u tekst fajl, ne u MySQL. Molio bih ako tko ima primjer ili kakav link da me uputi.
Srdacan pozdrav!
[ Radovan__III @ 06.08.2006. 19:04 ] @
1. Odes na hotscripts.com i skines skriptu za to i gotovo



2. Teza varijanta ( pronalazenje tople vode ukljuceno ) link treba da ti je tipa index.php?img=1 za neku sliku i i sad lepo kad neko klikne ti preuzmes kojju je sliku kliknuo, otvoris bazu ( txt ako hoces ) uvecas za tu sliku za 1 i to je to :) onda samo heder postavis na tu sliku
[ covjek @ 06.08.2006. 21:29 ] @
Hvala na odgovoru! Hotscripts sam sav prekopao, nista prikladno, jednostavno nisam nasao. I Guglao sam trazeci rjesenje ali nista, sve komplicirane skripte koje nisu za ovo namijenjene vec za download brojac ili slicno.
2. varijanta, eh kad bih to znao izvesti, php mi nije jaca strana.
Zahvaljujem na svakoj daljnjoj pomoci!
[ 1r0nM4n @ 07.08.2006. 02:10 ] @
Code:

<?php
//count.php

$img = $_GET['img'];
if((!isset($img)) || (!(is_numeric($img))))
    die("no img");

//Otvara fajl count.txt
$file = "count.txt";
$open = fopen($file,'r');
$content=@fread($open,filesize($file));
@fclose($open);

//Pravi niz (od brojeva koji se nalaze u count.txt)
$lines = explode("\n",$content);

//Proverava da li slika postoji
$diff = $img - (count($lines)-1);
if($diff >= 1)
    die("no img");

//Povecava vrednost 
$lines[$img]+=1;

//Ponovo otvara fajl za pisanje
$write = implode("\n",$lines);
$open = fopen($file,'w');
fwrite($open,$write);
fclose($open);

//Vraca sliku
header('Content-type: image/gif');

switch ($img) {
    case 0: 
        header("location: images/img0.gif");
        break;
    case 1: 
        header("location: images/img1.gif");
        break;    
        //case itd...
    default:
        die();
}
?>


Code:

//images.php
<?php
$file = "count.txt";
$open = fopen($file,'r');
$content=@fread($open,filesize($file));
@fclose($open);

$lines = explode("\n",$content);

?>

<a href="count.php?img=0"><img src="images/img0.gif"></a><br>
Kliknuto <?php echo $lines[0]?> puta<br>
<a href="count.php?img=1"><img src="images/img1.gif"></a><br>
Kliknuto <?php echo $lines[1]?> puta


Mozda sam ga previshe zakomplikovao, ali lepo shljaka :)
Za svaku novu sliku, u count.txt-u, dodaj novi red.
Dodaj zashtitu da ne moze da se pristupi direktno fajlovima count.*

p0z
[ 1r0nM4n @ 07.08.2006. 02:22 ] @
promeni chmod na count.txt, stavi 777
[ Jbyn4e @ 07.08.2006. 08:20 ] @
ironman, prvo - cilj foruma je da edukuje, da ideje, da ljudi nesto NAUCE, ne da da gotova resenja. Ali dobro, ako je to tvoja volja...

Drugo, samo jedno krace na brzinu:
Citat:

switch ($img) {
case 0:
header("location: images/img0.gif");
break;
case 1:
header("location: images/img1.gif");
break;
//case itd...

Zasto ne:
Code:

$fajl="images/img".$img.".gif"; // btw. sta ako covek hoce da kombinuje jpg, png i gif?
if file_exists ($fajl) header("location:".$fajl);

Mozda mi sad nije naispravniji kod, ali nije bitno... shvatio si poentu.
[ 1r0nM4n @ 07.08.2006. 14:30 ] @
Onda strani count.php treba da se proslede 2 vrednosti.

Code:
<a href="count.php?img=0&fajl=neka_slika.jpg"><img src="images/neka_slika.jpg"></a>

img služi za brojač a fajl služi za prikazivanje slike.
Code:
$fajl = $_GET['fajl']; 
if (file_exists($fajl)) 
    header("location:".$fajl);

p0z
[ covjek @ 07.08.2006. 22:41 ] @
1r0nM4n, svaka cast, zahvaljujem se na primjeru. Radi se samo o JPG slikama tako da ce ovo posluziti svrsi.
Srdacan pozdrav!
[ covjek @ 09.08.2006. 23:19 ] @
Isprobao sam primjer od 1r0nM4n, sve radi perfektno, samo mi se pojavio jedan problem, naime, imam male slike na koje klikam i u pop-up prozoru mi se pojavi uvecana slika, i, brojac mi broji po 2, sa svakim klikom, najvjerojatnije zbog pop-upa. Dakle, kako rijesiti da broji samo jednom a ne 2 puta, jer mi se sada svaki klik racuna kao 2?
Svaka pomoc dobrodosla.
Pozdrav!