Statistiky v PHP - 1. díl

Máte na Internetu stránky naprogramované v PHP a rádi byste měli přehled nad statistikami serveru? Pak sledujte tento seriál, kde si ukážeme, jak se dají prostě naprogramovat skripty na vytváření přesných statistik.
Máte na Internetu stránky naprogramované v PHP a rádi byste měli přehled nad statistikami serveru? Pak sledujte tento seriál, kde si ukážeme, jak se dají prostě naprogramovat skripty na vytváření přesných statistik.

I když se možná na první pohled zdá, že vytvoření statistik v PHP by mohlo být nějak obtížné, nejvíce bude záležet na tom, jaké proměnné vlastně použijeme, protože právě na nich bude postavena struktura databáze. V prvním dílu tohoto seriálu si ukážeme, s jakými proměnnými budeme pracovat. Další díly budou o struktuře databáze, jak budeme data ukládat a nakonec si ukážeme, jak údaje z databáze vypíšeme nejen jako obyčejný text, ale i graficky, tzn., že si ukážeme vytváření grafů. Nakonec budeme mít kompletní skripty, které nám budou ukládat každý přístup do databáze a on-line zobrazovat denní, týdenní, měsíční a roční statistiky. Mimo přehledů za určitý časový úsek využijeme údaje, které jsme nashromáždili používáním skriptů. Získáme tím přehled nejčastějších:

  • operačních systémů
  • prohlížečů
  • adres, ze kterých uživatelé přišli na naše stránky
  • zobrazených stránek na našem serveru
Využitím toho, že se skripty budou zpracovávat na našem serveru, dosáhneme těch nejpřesnějších statistických údajů. Většina z nás totiž moc dobře zná kvalitu některých internetových služeb, které po vložení zdrojového kódu do vašich stránek započítávají přístupy na server, který službu poskytuje. Jedná se o velice nepřesné měření, které se stává naprosto bezcenné, když je server nedostupný nebo přetížený.

Dnes se bude jednat jen o úvod, jak vlastně budeme pracovat. Nadefinujeme si proměnné, které budeme ukládat do databáze. Vysvětlivky k proměnným jsou uvedeny ve zdrojovém kódu.

<?
/* zjisti IP adresu pozadavku */
$ip = getenv("REMOTE_ADDR");

/* prevede IP adresu na domenovou adresu pocitace */
$host = gethostbyaddr($ip);

/* promenna $refer obsahuje adresu pocitace, ze ktereho prisel pozadavek na vase stranky. Zaroven se provede kontrola, jestli $refer obsahuje nejakou hodnotu. Kdyz ne, tak vypise, ze se jedna o prime volani */
$refer = getenv("HTTP_REFERER");
if ($refer=="") {
$refer = "Prime volani";
}

/* $browser obsahuje nazev prohlizece - funkce eregi() zjisti, zda vyraz je obsazen v promenne $HTTP_USER_AGENT */
if(eregi("msie", $HTTP_USER_AGENT)) {
$browser = "MSIE";
}
else if(eregi("opera", $HTTP_USER_AGENT)) {
$browser = "Opera";
}
else if(eregi("mozilla", $HTTP_USER_AGENT)) {
$browser = "Netscape";
}
else if(eregi("kongueror", $HTTP_USER_AGENT)) {
$browser = "Kongueror";
}
else if(eregi("lynx", $HTTP_USER_AGENT)) {
$browser = "Lynx";
}
else if(eregi("links", $HTTP_USER_AGENT)) {
$browser = "Links";
}
else {
$browser = "Ostatní";
}


/* $system obsahuje nazev operacniho systemu - stejnym zpusobem pomoci eregi() se zjisti, zda urcity nazev operacniho systemu vyhovuje promenne $HTTP_USER_AGENT */
if(eregi("win", $HTTP_USER_AGENT)) {
$system = "Windows";
}
else if(eregi("linux", $HTTP_USER_AGENT)) {
$system = "Linux";
}
else if(eregi("mac", $HTTP_USER_AGENT)) {
$system = "Macintosh";
}
else if(eregi("sunos", $HTTP_USER_AGENT)) {
$system = "SunOS";
}
else if(eregi("freebsd", $HTTP_USER_AGENT)) {
$system = "FreeBSD";
}
else if(eregi("irix", $HTTP_USER_AGENT)) {
$system = "IRIX";
}
else {
$system = "Ostatní";
}

// jeste ziskame aktualni cas
$aktualni_cas = Date("d.m.Y H:i:s");

// a muzeme vypsat vsechny promenne, ktere jsme o uzivateli ziskali
echo "<b>IP adresa:</b> $ip<br><b>Doménová adresa:</b> $host<br><b>Referer:</b> $refer<br><b>Prohlížeč:</b> $browser<br><b>Operační systém:</b> $system<br><b>Aktualní čas:</b> $aktualni_cas";

?>

Když skript necháte zpracovat, měl by vypadat takto (samozřejmě s jinými hodnotami):

IP adresa: 127.0.0.1
Doménová adresa: localhost
Referer: http://localhost/
Prohlížeč: MSIEOperační systém: Windows
Aktuální čas: 14.02.2001 11:57:42

Jak jste si jistě všimli, proměnná, kterou dostaneme pomocí HTTP_REFERER bude občas podávat zkreslené hodnoty, protože některé starší prohlížeče ji nepodporují a tudíž proměnnou vypíší prázdnou. Přímé volání to tedy bude tehdy, když bude uživatel volat naše stránky z čisté stránky prohlížeče nebo bude mít starý prohlížeč.

V příštím díle si ukážeme, jak bude vypadat struktura databáze a rovnou do ní uložíme několik hodnot.

Diskuze (15) Další článek: Ví se, kdo je autorem čerstvého viru s Annou Kurnikovovou

Témata článku: Software, PHP, Prohlížeče, Programování, Statistika, IRIX, Elsa, Browser, Díl, První Macintosh, Lynx, Vase, System, Prime


Určitě si přečtěte

Nejlepší příslušenství k počítači. Tipy na osvědčené klávesnice, tiskárny, routery…

Nejlepší příslušenství k počítači. Tipy na osvědčené klávesnice, tiskárny, routery…

** Tipy na klávesnice, myši, routery, tiskárny, sluchátka a další věci k počítačům ** Poradíme, s jakými produkty neuděláte chybu ** Vybíráme jak příslušenství na běžnou práci, tak na hraní her

David Polesný | 20

Vybrali jsme 21 programovatelných hraček a stavebnic pro děti i jejich rodiče

Vybrali jsme 21 programovatelných hraček a stavebnic pro děti i jejich rodiče

** Získejte děti pro matematiku a základy techniky ** Kupte jim hračku nebo stavebnici, které vdechnou vlastní život ** Vybrali jsme 21 stavebnic pro malé caparty i budoucí experty na A.I.

Jakub Čížek | 10

Co všechno se spouští se startem Windows a proč by vás to mělo zajímat

Co všechno se spouští se startem Windows a proč by vás to mělo zajímat

** Společně s operačním systémem se spouští řada aplikací a služeb ** Mohou mít negativní dopad na celkovou dobu startu Windows ** Jak získat kontrolu nad automaticky spouštěnými programy?

Karel Kilián | 57

Google Coral: Raspberry Pi s čipem, který zpracuje 4 biliony operací za sekundu

Google Coral: Raspberry Pi s čipem, který zpracuje 4 biliony operací za sekundu

** Je to velké jako Raspberry Pi ** Ale je to až o několik řádů rychlejší ** Dorazil nám exotický Google Coral s akcelerátorem Edge TPU

Jakub Čížek | 18

Jak doma vylepšit signál Wi-Fi: Pomůže repeater, více routerů, ale nejlépe systémy mesh

Jak doma vylepšit signál Wi-Fi: Pomůže repeater, více routerů, ale nejlépe systémy mesh

** Máte špatný signál Wi-Fi? Mesh systémy to vyřeší ** Už vás nezruinují, meziročně ceny příjemně spadly ** Jak systém funguje a čím je výjimečný?

Jiří Kuruc | 108

Nejlepší notebooky do 20 000 Kč. Tipy, co se dnes vyplatí koupit

Nejlepší notebooky do 20 000 Kč. Tipy, co se dnes vyplatí koupit

** S cenou do 20 tisíc lze vybrat solidní notebook na práci i hry ** Přenosné notebooky nabídnou i kovová těla a rychlý hardware ** Na hraní se hodí více peněz, ale na použitelný základ dvacet tisíc stačí

Tomáš Holčík, David Polesný | 47

Jak funguje kontroverzní program, který ženám krade plavky. Mají se čeho bát?

Jak funguje kontroverzní program, který ženám krade plavky. Mají se čeho bát?

** Strojové učení ještě nepřitáhlo takový zájem jako na začátku prázdnin ** Ne, umělá inteligence nenašla lék na rakovinu ** Naučila se svlékat ženy nejen z plavek

Jakub Čížek | 35

Podívejte se, jak vypadá mikrofon nebo blecha pod elektronovým mikroskopem

Podívejte se, jak vypadá mikrofon nebo blecha pod elektronovým mikroskopem

** Z Brna pochází třetina světové produkce elektronových mikroskopů ** První československý kus vyrobila Tesla už v 50. letech ** Dnes na ni navazuje třeba brněnský Tescan

Jakub Čížek | 19


Aktuální číslo časopisu Computer

Megatest: 20 powerbank s USB-C

Test: mobily do 3 500 Kč

Radíme s výběrem routeru

Tipy na nejlepší vánoční dárky