Jak udělat počítadlo přístupů na www stránku?

Chtěl bych mít na svých stránkách počítadlo přístupů, které by opravdu odpovídalo počtu návštěv stránky. Mož...


Chtěl bych mít na svých stránkách počítadlo přístupů, které by opravdu
odpovídalo počtu návštěv stránky. Možnost první: CGI
Počítadla přístupů zařazovaná na stránky pomocí CGI skriptu, který generuje
obrázek s počtem přístupů, mají mnoho nevýhod a lze je napadnout z mnoha stran.
Jejich velká výhoda spočívá v tom, že je lze zařadit na libovolnou stránku.
Pokud si takové počítadlo chcete zařadit na stránku, obvykle získáte potřebné
informace u svého poskytovatele připojení. Rovněž můžete využít veřejně
přístupné počítadlo na adrese http: //pocitadlo.pinknet.cz.
Záznamy ze serveru
Asi nejspolehlivější metodou pro získání počtu přístupů je analýza log-souborů
na serveru. V nich jsou uloženy záznamy o všech stránkách poskytnutých
serverem. Jediný problém je v tom, že některé stránky jsou uživatelům
poskytnuty z vyrovnávacích pamětí proxy serverů. Jak na to přes PHP
Problém s proxy servery lze jednoduše vyřešit tím, že se zakáže ukládání
stránky do vyrovnávacích pamětí. Není to však zdaleka nejlepší řešení, protože
se tím zvednou nároky na přenosovou kapacitu Internetu. Ukládání do
vyrovnávacích pamětí lze zakázat pomocí HTTP hlaviček Pragma, Cache-Control a
Expires. Tak např. hlavička Expires obsahuje čas, do kdy je stránka platná.
Pokud ho tedy nastavíme na čas odeslání stránky, nebude stránka ukládána v
paměti žádného proxy serveru. Pro nastavení hlavičky na správnou hodnotu můžeme
ve skriptovacím jazyku PHP na začátek stránky umístit příkaz
Header("Expires:" . GMDate("D, d M Y H:i:s") . "GMT");
Nyní máme připravenu půdu pro spolehlivé počítadlo. Stačí vytvořit krátký
skript, který bude generovat počty přístupů a zařazovat je přímo do textu
stránky. Náš skript bude ukládat počty přístupů ke každé stránce do zvláštního
souboru. Při každém přístupu se ze souboru přečte aktuální počet přístupů,
zvýší se o jedna, zobrazí se a zapíše zpět do souboru.
Dostáváme se tedy ke skriptu counter.php:
<?
function GetHits()
{
\ $datadir = "f:workcounter"; // adresář pro //datové soubory, na Unixu
např. /var/counter
$datafile = StrTR($GLOBALS["SCRIPT_NAME"], "./", "___"); // nahrazení
nebezpečných znaků ze jména //datového souboru $filename =
$datadir.$datafile.".dat"; // kompletní cesta k datovému souboru if
(File_Exists($filename)): // existuje datový //soubor? $fp = if (!$fp) return;
$hits = FGetS($fp,10) + 1; // přečtení počtu //přístupů Rewind($fp); //
příprava souboru na zápis else: $fp = (!$fp) return; $hits = 1; // inicializace
počtu přístupů endif; FPutS($fp, $hits); // zapsání nového //počtu přístupů
FClose($fp); // zavření //datového souboru echo $hits; // vypsání //počtu
přístupů
}
GetHits();
?>
Zařazení počítadla na stránku je velice jednoduché a obstará ho např.
následující kód:
<?Header("Expires: " . GMDate("D, d M Y H:i:s"). " GMT")?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML> <HEAD>
<TITLE>Stránka s počítadlem</TITLE> </HEAD>
<BODY>
<H1>Stránka s počítadlem</H1>
<P>Jste <?require "counter.php"?>. návštěvník této stránky.
</BODY> </HTML>
9 0309 / pahn









Komentáře
K tomuto článku není připojena žádná diskuze, nebo byla zakázána.