[ dakiki @ 21.09.2010. 17:04 ] @
kako da napravim na sajtu da imam ispod slike broj ljudi koji su kliknuli na sliku?
[ Goran Rakić @ 21.09.2010. 17:11 ] @
Svaki put kada neko klikne odvedeš ga linkom na neku PHP stranicu. Stranica doda plus jedan na brojač koji se čuva u bazi i potom prikaže sliku. Poznaješ li uopšte osnove PHP-a? Ako želiš gotovo rešenje pretraži forum Web aplikacije ili postavi oglas u forumu IT Berza poslova.
[ dekifpi @ 21.09.2010. 18:07 ] @
Moras malo i sam da se potrudis... i malo googlas :) NA internetu je dosta takvih primera. Evo ti jedna skripta sa brojacem pregleda slike... stim sto cuva podatke u txt file a ne u bazu kao sto je Goran napisao... ali moze za pocetak da ti zavrsi posao.

Code:

         <?php 




$fp = fopen("counter.txt", "r"); 


$count = fread($fp, 1024); 


fclose($fp); 

 
$count = $count + 1; 

echo "<img src='neka_slika.jpg' width=100 Height=100>"; 

 
echo "<p>Image views:" . $count . "</p>"; 


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


fwrite($fp, $count); 


fclose($fp); 

?>
[ Goran Rakić @ 21.09.2010. 18:33 ] @
Nije to dobro. Liči, ali nije kompletno.

Prvo nepotrebno je dva puta da otvaraš i zatvaraš datoteku, za to služi rewind(). Drugo, ako simulatano upadne još neki zahtev može da se dogodi da imaš nekonzistentni upis, zato moraš da zaključaš datoteku nakon otvaranja i oslobodiš je pre zatvaranja. Kako datoteka ne bi ostala zaključana moramo da pre toga zanemarimo prekid.

Zato je korišćenje baze lakše.

Code (php):

ignore_user_abort(true);

  $fp = fopen("counter.txt", "w+");
  // čekamo dok ne dobijemo pristup
  while(!flock($fp, LOCK_EX)) usleep(100000);

  $count = intval(fread($fp, 1024));

  // upišemo za jedan veću vrednost
  rewind($fp);
  fwrite($fp, ++$count); // krenuli smo od 0!
  flock($fp, LOCK_UN);
  fclose($fp);

ignore_user_abort(false);

echo "<img src='neka_slika.jpg' width=100 Height=100>";
echo "<p>Image views:" . $count . "</p>";
 


Korak dalje bi bilo, kao što sam i napisao, da ovaj kod stoji u neka_slika.php i da nakon uvećavanja brojača PHP prosledi zaglavlja i sadržaj slike. Tada bi HTML bio <img src="neka_slika.php" ... />, a za prikaz brojača bismo samo čitali sadržaj datoteke uz deljeni katanac.