Počítadlo přístupů na web
Ahoj,
chtěl bych si napsat počítadlo přístupů na web, (JS,PHP,MYSQL umím) ale nevím na jakým principu to udělat,
napadlo mě že by se při prvním načtení vytvořila cookie s platností 24 hodin a započítal by se přístup, dokud by cookie platila tak by se další nezapočítával, ale přinejmenším IE9, a možná i jiní uživatelé mají cookies blokované, takže by se nezapočítaly všechny přístupy všech,
a nebo to udělat přes zjištění IP adresy a času, zapsání do databáze a pak porovnávat získanou ip a čas návštěvy s databází?
a nebo to mám udělat uplně jinak?
díky
Jednou jsem psal článek o počítadlu přístupů pomocí souborů - http://martindev.posterous.com/pocitadlo-pristupu- s-kontrolou-ip-adresy-v-ph
Není problém si předělat ukládací část do MySQL
jako inspirace dobrý, podíval sem se na to jen v rychlosti řeší se tam jeden přístup jednou za 24 hodin?
asi by bylo lepší jednou za 24 hodin aktualizovat databázi a vymazat z ní záznamy která jsou starší než 24 než aby se pořád zvětšovala ne?
Ne je to celkové počítadlo.
Pokud to chcete pomocí databáze a pouze pro 24h. Tak při přístupu na web uživatele dělejte tyto kroky:
- zkontrolujte unikátnost uživatele podle IP
- pokud je nový zapište ho do databáze
Potom bych si v pomocné tabulce uložil timestamp posledního mazání starý dat (více jak 24h) a před vložením návštěvníka bych data případně promazal.
Tzn. bude tam třeba 00:01 28.10. 2011 a pokud tam nyní (13:30 29.10.) přijde uživatel tak se spustí procedura, která smaže starší data.
Toto řešení bude fungovat, že bude ukazovat něco jako "Tento den tady bylo X uživatelů.". Pokud by jste to chtěl od okamžiku přístupu uživatele - 24h tak by se to zase řešilo jinak, ale osobně si myslím, že informace "Tento den" je lepší.
Ale pokud máte přístup ke CRONu tak to máte ještě lehčí.
EDIT z telefonu - teď koukám, že jsem asi přesně nepochopil co potřebujete a že odpovídám trošku mimo.
Určitě bych do toho netahal cookies.
Ale kontrolou a zápisem do MySQl databáze, jak píšeš.
MySQL má nadstandardní příkaz REPLACE
( http://dev.mysql.com/doc/refman/5.0/en/replace.htm l )
který vše vyřídí jedním dotazem.
Chtěl jsem aby se návštěva z jedné IP počítala jen jednou denně.
Moje řešení níže umí počítat celkový počet návštěv (z jedné IP jedna denně) a počet návštěv v aktuální den (opět z jedné IP jedna denně)
Tabulka SQL
PHP
nejsem zadny profik ale po vlozeni kodu jsem zjistil ze tam neco faliruje nejdriv nazvy tabulek a pak jeste neco ale to se mi zatim nepodarilo dat do kupy nevite kde by tam jeste mohla byt chybka?
Chyba může být v čemkoliv. Když se neobtěžuješ napsat, co prohlížeč hlásí a jak jsi přesně postupoval, jak ti může někdo poradit?
Já bych si tam dal Toplist a je to bez práce. Navíc tam jsou různé statistiky.
Prima to bývá také u statistik poskytovaných hostingem, včetně například přístupů z vyhledávačů a jaká se hledala fráze.