Skip to the main content
[] 28. srpnja 2005.

Ova kategorija je zanimljiva samo programerima početnicima. Programeri i civili, ovo je full dosadno!

Jedna od prvih skripti kad počinješ s PHP programiranjem je brojač posjeta (hit counter) koji pokazuje koliko puta je stranica učitana. Postoje dva načina da se isti realizira: tekst datoteka i baza.

Ovdje ću opisati prvi način koji usput objašnjava i neke osnovne stvari koje se tiče rada s datotekama.

Da bismo imali brojač potrebno ga je negdje pamtiti. Za to nam služi datoteka, nazovimo je counter.txt. Nju je potrebno prvo kreirati. U komadnoj liniji to se radi ovako:

echo >counter.txt 0

Naravno, nitko normalan neće brojač postaviti na 0 nego će ovdje staviti veći broj. 1000 je dobar izbor.

• • •

Na *x serverima potrebno je toj datoteci dati prava da bi skripta mogla čitati i pisati po njoj. To se radi ovako:

chmod 777 counter.txt

(Ako ne koristite komadnu liniju nego ftp klijenta s vizualnim sučeljem nakon što kreirate ovu datoteku prebacite je na server i promijenite joj prava - opcija mora postojati negdje u menijima.)

Sad bi mogli i nešto kao programirat. Prvo ćemo otvoriti datoteku i iz nje pročitati sadržaj brojača:

$fp = @fopen("counter.txt", "r"); // otvaranje datoteke za citanje
if(!$fp) die("Di ti je datoteka, bolidu?"); // ako vrati NULL
$counter = trim(fread($fp, 10)); // 10 znakova citamo u counter
fclose($fp); // zatvaramo datoteku

Funkcijom trim() za svaki slučaj skidamo razmake lijevo i desno (recimo smeće koje je napravio onaj echo u komandnoj liniji, a znak @ sluzi za to da nam fopen() u slučaju kad nema datoteke ne ispiše i nešto kao

<strong>Warning</strong>: fopen(ccounter.txt) [<a href="http://www.php.net/function.fopen">function.fopen</a>]: failed to create stream: No such file or directory in <strong>c:sitescounter.php</strong> on line <strong>2</strong>

Dalje jednostavno povećamo counter za jedan:

$counter++;

I sad tu uvećanu vrijednost treba zapisati u datoteku:

$fp = @fopen("counter.txt", "w"); // otvaranje za pisanje
if(!$fp) die("Seronja mi neda pisati!"); // ako je read-only
fwrite($fp, $counter); // zapisujemo counter
fclose($fp); // zatvaramo datoteku

I to bi bila cijela mudrost da ne fali ispis brojača. Naravno, nećemo to jednostavno ovako:

echo $counter;

Nego malo ljepše:

echo "MegaSuperCounter v10.0<br>";
printf("%08d hits", $counter);

na mjestu gdje želimo ispis. QED. (Inače imao sam counter na ovoj stranici, ali se tako brzo povećavao da sam se uplašio da ne sruši server pa sam ga maknuo.)

Loša vijest je da je ovo riješenje totalno krivo, ali više o tome u drugom nastavku Škole budućih Velikih Programera. Sve skupa fino zazipano možete skinuti ovdje.

Komentari
1. Illeana
[] 31.07.2005.

Isuse ...

2. darkoni
[] 01.08.2005.

Dado, pa skroz si puko.
Kolka je temperatura i vlažnost zraka kod tebe u Knegincu ?

Novi komentar

Dozvoljeni tagovi: A, B, DEL, I, INS, S, U.


Vaša e-mail adresa se nigdje neće prikazati.


Uvredljivi te prosti komentari te komentari koji služe isključivo kao reklama bit će obrisani.


Offensive and rude comments will be deleted.

Ime *
E-mail *
Web
5 + 8 = ? *
Komentar *