Stránko moje, jakou návštěvnost dnes máš – pokročilé sledování
V předchozím článku jsme si povídali o měření přístupů a naprogramovali jednoduché počítadlo v PHP s využitím MySQL a cookies. Dnes si za použití těch samých prostředků naprogramujeme počítadlo, které bude umět měřit přístup ne jenom na jednu stránku, ale bude i vytvářet jednoduchý log.
Počítadlo z minulého příkladu bylo "hloupoučké". Neumělo nic jiného než počítat přístup na jednu jedinou stránku. Naše dnešní počítadlo kromě počítání přístupů na více stránek bude schopno počítat přístupy na více stránek, na stránky sdružené pod jedno počítadlo a vytvářet jednoduchý log. Sdruženým přístupem myslím to, že máte např. na webu článek rozdělený do několika částí (kapitol). Můžete měřit jenom jeho první stránku, počítat všechny přístupy na jeho jednotlivé části a nebo měřit jenom první návštěvu na některou z jeho kapitol a vše ostatní brát jako reload. Tento poslední způsob je asi nejkorektnější.
Pro měření návštěvnosti si vytvoříme jednoduchou tabulku, která bude obsahovat jméno počítadla, počet návštěv a datum poslední návštěvy:
|
Pro logovací systém si vytvoříme tabulku, která bude obsahovat jméno počítadla, ip návštěvníka, datum a čas návštěvy a aktuální stav počítadla.
|
V každém scriptu, kde budeme chtít použít toto počítadlo, budeme muset nastavit proměnnou $CounterName, ve které bude uloženo jméno počítadla. Při práci s touto proměnnou využijeme jednu z velkých vymožeností – dynamické definice jmen proměnných. V $CounterName máme sice uloženo jméno počítadla(např. "test"), ale jak zjistit zda existuje proměnná stejného jména jako je toto jméno? Právě pomocí této definice. Její syntaxe je např. ${$CounterName}=10. Tento zápis je ekvivalentní k $test=10. Další proměnná je $CookieDeath, která obsahuje délku životnosti cookie v minutách.
Tak a teď k vlastnímu programování. Nejdříve si zjistíme, zda je nastaveno jméno počítadla, které budeme měřit. Pokud není, script nic nedělá. Pokud ano, sejmeme si do proměnné $Last_visit datum a čas naformátovaný pro datový typ DATETIME. Dále vytvoříme spojení na databázi a zjistíme zda již dané počítadlo existuje. Pokud ne, zaregistrujeme jej do databáze, nastavíme jej na hodnotu 1 a uděláme první zápis k tomuto počítadlu do logovací tabulky:
|
Pokud je již počítadlo zavedeno, zjistíme zda existuje proměnná, která se jmenuje stejně jako naše počítadlo. Pokud ne, tak:
- cookie vypršela – návštěvník zde nebyl déle než limit nastavený v $CookieDeath
- je to první návštěva této stránky
- nejsou povoleny cookies.
Takže provedeme výběr potřebných dosavadního počtu návštěv stránky z tabulky a přičteme k němu jedničku. Také provedeme záznam do logu:
|
Pokud ovšem je tato proměnná se jménem našeho počítadla nastavena, vybereme si pouze z databáze počet návštěv a datum/čas poslední návštěvy:
|
Nyní máme v proměnné $Visits aktuální počet návštěv a v $Last_visit datum poslední návštěvy. Takže zavřeme spojení s databází (já vím že to PHP udělá samo, ale jsou jisté návyky, kterých je lepší se nezbavovat) . Potom provedeme zápis do cookie, kde si uložíme jméno počítadla, které právě používáme, nastavíme k němu nějakou hodnotu, v našem případě aktuální stav počítadla. Je v zásadě jedno jakou hodnotu přiřadíme. Nastavíme dobu vypršení platnosti cookie. Doba = time()+$CookieDeath*60. To násobení 60 je tam proto, že time vrací čas v sec.
Nakonec si přeformátujeme datum poslední návštěvy z formátu DATETIME do českého formátování. To si uložíme do proměnné $CSLast_visit. A můžeme si připravit text pro vypsání stavu počítadla. Např. "11 návštěva 21.11.2000 v 23:34:18". tento řetězec uložíme do proměnné $HTMLCounter:
|
Vlastní práce s počítadlem pak vypadá třeba takto:
|
A to je pro dnešní den vše, přátelé. Zdrojové kódy ke článku si můžete stáhnout zde.
Starší komentáře ke článku
Pokud máte zájem o starší komentáře k tomuto článku, naleznete je zde.
Mohlo by vás také zajímat
-
Proč investovat do nejvýkonnějších VPS s AMD EPYC procesory
14. června 2024 -
Užitečné nástroje pro bezpečnost na internetu
17. října 2024 -
AI v programování: Jak používat GitHub Copilot (část 2)
19. února 2024
Nejnovější
-
Jak rozšířit úložiště Macu za pětinovou cenu?
16. prosince 2024 -
Nové trendy v doménách pro osobní projekty – DIY, LIVING a LIFESTYLE
9. prosince 2024 -
Jak chránit webové stránky před Web/AI Scrapingem
27. listopadu 2024 -
Jaký monitor je nejlepší k novému Macu Mini?
25. listopadu 2024