Šablony webových stránek a php skriptů

  • php skripty
  • šablony www
  • Počítadlo přístupů

    Co to vlastně je?

    Na internetu je nesčetně služeb, které vám nabízí měření návštěvnosti vašich stránek. Ale sám jsem se po čase rozhodl vyzkoušet, jak přesně služby měří. Nelze říci, kdo vám změří počet přístupů přesněji, protože je to každý den jinak a průměrně by rozdíly vyšly na stejno.

    Vlastní počítadlo zaručuje, že se při každém načtění specifické IP adresy uloží záznam do databáze. Vy si pak jednoduše necháte spočítat počet záznamů v databázi a je hotovo. Takhle docílíte jasného výsledku, který je určitě přesnější, než měření již zmiňovaných služeb.

    Vytvoříte si nejdříve dvě databáze

    Potřebujete dvě databáze. Jedna bude měřit počet návštěv aktuální den a do druhé se bude ukládat historie návštěv, abyste měli přehled.

    Databéze si vytvoříte spuštěním tohoto skriptu

    
    
    $sql = "CREATE TABLE pocitadlo (
    	ip varchar(255) NOT NULL,
    	datum int(8) NOT NULL,
    	PRIMARY KEY (ip)
    )";
    $dtz = mysql_query($sql) or die (mysql_error());
    
    $sql = "CREATE TABLE pristupy (
    	pocet int(4) NOT NULL,
    	datum int(8) NOT NULL,
    	PRIMARY KEY(datum)
    )";
    $dtz = mysql_query($sql) or die (mysql_error());
    
    

    Ukládání přístupů

    U každého si zjistíte jeho IP adresu a pokud je na stránce daný den poprvé, tak si ji uložíte do databáze, pokud tam už byl, ukládat se nic nebude.

    Také musíme nějak zajistit, aby se vždy tabulka "pocitadlo" vyprázdnila a neukládala přístupy i další den. To jsem vyřešil tak, že jakmile se datum položek v DB liší od aktuálního data, tak se spustí skript, který data z tabulky vymaže, ale před tím ještě uloží do tabulky "pristupy" počet záznamů.

    Skript na vymazání údajů z tabulky se spustí vždy pouze prvnímu návštěvníkovi webu daný den.

    //načteme datum
    $den = date(d);
    $mesic = date(m);
    $rok = date(Y);
    
    $datumD = $rok . $mesic . $den;
    //zjištění IP adresy
    
    $ipactual = $_SERVER['REMOTE_ADDR'];
    //zjistíme si datum uložených položek a aktuální datum s ním porovnáme
    $vlozit = "SELECT * 
    			FROM pocitadlo 
    			LIMIT 1";
    $dotaz = mysql_query($vlozit);
    while($r = mysql_fetch_array($dotaz)) {
    	//jestliže se data liší, uložíme do tabulky "pristupy" počet záznamů z tabulky "pristupy"
    
    	if (($datumD - $r[datum]) != 0) {
    		$vlozit = "SELECT ip FROM pocitadlo";
    		$dotaz = mysql_query ($vlozit);
    		$vysledek = mysql_num_rows($dotaz);
    
    		$vlozit = "INSERT INTO pristupy (pocet, datum) VALUES ('$vysledek', '$r[datum]')";
    		$dotaz = mysql_query ($vlozit);
    		//vymažeme záznamy z tabulky "pocitadlo"
    
    		$vlozit = "TRUNCATE TABLE pocitadlo";
    		$dotaz = mysql_query ($vlozit);
    	}
    }
    //zjistení zda je uz daná IP uložená v DB
    $vlozit = "SELECT ip 
    			FROM pocitadlo 
    			WHERE ip = '$ipactual'";
    $vysledky = mysql_query ($vlozit);
    $vraci = mysql_num_rows($vysledky);
    //uložení záznamu do tabulky, jestliže daná IP ještě v seznamu není
    
    if ($vraci == 0) {
    $vlozit = "INSERT INTO pocitadlo (ip, datum) 
    			VALUES ('$ipactual', '$datumD')";
    mysql_query ($vlozit) or die(mysql_error());

    Vypsání výsedků z databáze

    Kam vložíte tenhle kod, tam se vám bude zobrazovat statistika přístupů. Můžete si případně její HTML výstup upravit, dle libosti.

    Nezapomínejte se připojit

    Nezahrnul jsem to těchto skriptů připojení k databázi, jestli nevíte jak se připojit, tak si přečtěte základy MySQL.

    //počet záznamů aktuální den.. tj. počet řádků z tabulky "pocitadlo"
    $vlozit = "SELECT datum FROM pocitadlo";
    $vysledky = mysql_query ($vlozit) or die (mysql_error());
    $navstevydnes = mysql_num_rows($vysledky);
    
    
    //vypsání 7 záznamů z tabulky "pristupy".. taková malá historie
    echo "<h4>Statistika přístupů</h4><p><b>Dnes:</b> $navstevydnes</p></div><h4>Počet přístupů za posledních 7 dní:</h4>";
    $vlozit = "SELECT * 
    			FROM pristupy
    			ORDER BY datum
    			DESC
    			LIMIT 0, 7";
    $vysledky = mysql_query ($vlozit) or die (mysql_error());
    
    while ($celkem = mysql_fetch_array($vysledky)) {
    	extract($celkem);
    	echo "<p> $datum - <b>$pocet</b></p>";
    
     }

    Maillist


    Přidáním mailu budete dostávat e-mailem nepravidelně informace o novinkách na tomto webu. Zrušit zasílání těchto informací je možné zde.

    Nově přidané stránky

    Tylova léta


    Obsah této stránky vyžaduje novější verzi aplikace Adobe Flash Player.

    Získat aplikaci Adobe Flash Player

    Autor: Otakar Hypš | výměna odkazů | mapa stránek | tisk | nahoru Reklama na auto | Burza učebnic GJKT | Hudební festival Tylova léta | fBrigády.cz - Brigády pro studenty CNW:Counter