A counter 1 egyszerű oldalszámláló (counter1) javított változata. A szerverről történő oldal-letöltéseket számolja. A scriptben beállított időn belüli ismételt oldallekérés esetén a számláló nem lép tovább, így megakadályozza a számláló pörgetését. A működéshez a PHP futtatást engedélyezni kell a szerveren. A scriptet be lehet illeszteni a meglévő HTML kódba a szükséges helyen. Fel kell tölteni a fájl mellé azonos könyvtárba egy egyszerű .txt fájlt - ez esetben figyelni kell a kiterjesztésre (.php a script és .txt az adatfájl) - ami a számláló induló állását tartalmazza (pl.: "0").
Először megnézi, létezik-e a session változó, ha nem beírja az aktuális idővel. Ha létezik a counter.txt nevű fájl, kiolvassa a tartalmát ( érték ), bezárja a fájlt, az értéket, mint változót megnöveli eggyel, megnyita a fájlt írásra, beíra az új értéket, egyúttal az adott lapon is megjeleníti azt.
<?php 1. session_start(); 2. if (!isset($PHPSESSID)) 3. { 4. session_register('visited'); 5. $visited = time(); 6. } 7. if (($visited + 600) < time()) //blokkolási idő beállítás (sec.) 8. { 9. $counterFile = 'counter.txt'; 10. if (file_exists($counterFile)) 11. { 12. $fp = fopen($counterFile,"r"); 13. $num = fread($fp, filesize($counterFile)); 14. fclose($fp); 15. } 16. $num = $num + 1 ; 17. $fp = fopen($counterFile,"w"); 18. fwrite($fp, $num, 10); 19. fclose($fp); 20. $visited = time() ; 21. } ?> <HTML> <HEAD> <!--... itt kezdődik a dokumentum ... -->
< body> -ba
<?php 1. $counterFile = 'counter.txt'; 2. if (file_exists($counterFile)) 3. { 4. $fp = fopen($counterFile,"r"); 5. $num = fread($fp, filesize($counterFile)); 6. fclose($fp); 7. } 8. echo ('<B>'.chop($num).'</B>'); ?>
<?php
session_start();
if (!isset($PHPSESSID))
{
session_register('visited');
$visited=time();
}
if (($visited+600)<time())
{
$counterFile = 'counter.txt';
if (file_exists($counterFile))
{
$fp = fopen($counterFile,"r");
$num = fread($fp, filesize($counterFile));
fclose($fp);
}
$num=$num+1;
$fp = fopen($counterFile,"w");
fwrite($fp, $num, 10);
fclose($fp);
$visited=time();
}
?>
<?php
$counterFile = 'counter.txt';
if (file_exists($counterFile))
{
$fp = fopen($counterFile,"r");
$num = fread($fp, filesize($counterFile));
fclose($fp);
}
echo('<B>'.chop($num).'</B>');
?>