DarkGhost küldött be egy leírást arról, hogy hogyan készítsünk olyan számlálót, amely a "visszatérő látogatókat" nem számolja...
A szkript (counter4.zip) valójában csak egy függvény, amely meghívásákor egy file-ban megnézi a számláló értékét és visszaadja azt... Amennyiben nincs beállítva süti, akkor növeli eggyel a visszaadás előtt, és létrehoz egy sütit, így a következő oldallehíváskor nem fog számolgatni.
A függvény 3 paramétert fogad el, de mindegyiknek van egy alapértéke:
| paraméter | mit állít be | alapérték |
|---|---|---|
| filename | Annak a filenak a nevét adja meg, amiben a számláló értéke van tárolva | counter.txt |
| cookiename | Annak a sütinek a nevét adja meg, amelyben tárolva van, hogy volt-e már számlálás... | CounterCookie |
| timeout | A két számolás közti idő órában... | 1 |
Használata
Mint mondtam a program sütiket használ az adatok tárolására. A HTTP specifikáció szerint a sütinek a fejlécben kell megérkezniük (tehát a valós file kiküldése előtt). A használata ezzel egy kicsit bonyolultabb, mint egy függvény-hívás, de azért nem kell tőle megijedni, nem bánt ;)
Annak a file-nak, amiben szeretnénk lehívásokat számolni az elejében (eleje = első sor) írjuk a következőket:
<?PHP
include 'function_counter.php';
$counter = Counter()
?>
(Amennyiben a Counter függvényt paraméterezni szeretnénk, természetesen megtehetjük... pl.:
Counter('counter1.txt', , 12);
Így csak 12 óránként menti el az adatokat és egy counter1.txt-be)
Ezután ahol szeretnénk kiíratni a számlálónk értékét írjuk ezt:
<?PHP print $counter; ?>
Pl.:
Eddig összesen <?PHP print $counter; ?> látogatónk volt...
Tipp
Természetesen így egy file-al több számlálót is tudunk működtetni...
Például ha minden lapunkról külön statisztikát szeretnénk, akkor mindegyiknek másik filet megadva pontos adatokat kaphatunk.
Például:
<?PHP include 'function_counter.php';
$counter = Counter(basename(__FILE__));
?>
A leíráshoz tartozó fájl letölthető innen: counter4.zip.
Szerző: DarkGhost (darkghost.atw.hu)
Harder
Profil
Korábbi hozzászólások (1)
A régi blogon érkezett hozzászólások archívuma. Új hozzászólást már nem lehet írni.
Jujj működik^^ köszönet érte:) Viszont azt az órás dolgot nem egészen értem... igaz hogy nem minden lapfrissítésnél, de egy nap többször is számol egy embert (pl engem...). Hogy tudnám azt megcsinálni, hogy 1 nap csak egyszer számoljon, max 2x?
Van hozzáfűznivalód? Írj nekem közvetlenül.
Kapcsolat