MVnet logo

Kotisivun teko » Kävijälaskuri PHPllä

  • Julkaistu: 20.10.2006
  • Päivitetty: 25.02.2009
  • Kommentit

Kävijälaskuri PHP:llä

Kävijälaskurin uusin versio on versio 2006-08-30. Oman PHP-kävijälaskurisi version näet "kavijat"-kansion "versiot.txt"-tiedostosta. Huom! Versiot.txt-tiedosto on lisätty vasta kävijälaskurin versioon 2004-05-15.

Mitä sovellus tekee?

Tässä esitetty kävijälaskuri tekee seuraavaa:

  • Laskee sivujen lataukset
  • Laskee kävijät yhteensä
  • Laskee kävijät päivää kohden
  • Laskee kävijät viikkoa kohden
  • Laskee kävijät kuukautta kohden
  • Laskee kävijät viikonpäiviä kohden
  • Laskee kävijät tunteja kohden
  • Kirjaa ylös kellonajan milloin kävijä tuli sivuille
  • Kirjaa ylös kävijän IP-osoitteen
  • Kirjaa ylös URL-osoitteen, josta kävijä tuli sivuille (referer)
  • Kirjaa ylös sivun, jonka kävijä latasi ensin
  • Kirjaa ylös kävijän internet-selaimen ja käyttöjärjestelmän tiedot
  • Tietoja kävijöistä on helppo katsoa "Kävijätietojen hallinta" -sivulta käyttäen nettiselainta
  • Piirtää graafisen kuvaajan halutun aikavälin kävijämääristä (esim. viimeisten 31 päivän kävijämääristä)

Miten sovelluksen saa toimimaan?

Kopioi ensin kavijat.zip-tiedosto (koko noin 31 kt) ja pura se siten, että zip-tiedostossa olevat tiedostot ja kansiot ovat kansiossa nimeltä kavijat. Laita sitten kavijat-kansio kotisivusi juureen (eli esim. minun tapauksessani osoitteeseen http://www.mvnet.fi/kavijat). Kavijat-kansion sisällä pitäisi sitten olla kansiot: admin, graafit, ipEsto, kuukaudet, paivat, tunnit, viikonpaivat ja viikot sekä 6 tiedostoa. Alla olevassa taulukossa on selitetty, mitä zip-tiedostossa olevat tiedostot ja kansiot ovat. Minkään tiedoston sisältöä ei pidä muuttaa ellei alla ole toisin mainittu.

Joidenkin tiedostojen ja kansioiden käyttöoikeuksia pitää muuttaa (kts. ohjeet käyttöoikeuksien muuttamiseen), jotta PHP-koodi pystyisi niihin kirjoittamaan. Se, mihin muotoon tiedoston tai kansion käyttöoikeus pitää muuttaa, on kerrottu taulukon Chmod-kohdassa. Viiva tarkoittaa, ettei tiedoston/kansion käyttöoikeuksia pidä muuttaa.

Tiedosto/kansio Tiedoston/kansion kuvaus Chmod
kavijatiedot.php Tähän tiedostoon tallennetaan tiedot kävijöistä selkeästi html-taulukko-muodossa: aika, referer-osoite, ip-osoitteet jne. Tiedosto tyhjennetään automaattisesti, jos tiedostokoko ylittää 500 kilotavua (500 kilotavuun mahtuu tiedot noin 1000 kävijästä). Tiedoston voi tyhjentää myös helposti manuaalisesti. 766
kavijat.txt Tähän tiedostoon tallennetaan numeroina se, kuinka monta kävijää sivuillasi on käynyt yhteensä. 766
laskuri.php Tämä tiedosto on varsinainen laskuri, joka suorittaa kävijöiden laskennan ja tilastotietojen tallennuksen. -
lataukset.txt Tähän tiedostoon tallennetaan numeroina se, kuinka monta kertaa sivujasi on ladattu yhteensä. 766
peruskoodi.php Tämä sivu sisältää käyttäjätunnuksen ja salasanan, jonka avulla pääsee katsomaan ja muokkaamaan tietoja kävijöistä. -
versiot.txt Tässä tiedostossa on tiedot siitä, mikä on kävijälaskurisi versionumero ja infoa, mitä muutoksia uusimmassa kävijälaskurin versiossa on vanhempiin versioihin verrattuna. -
admin/ Tämä kansio sisältää tiedostot: index.php, kavijat_kasittely.php, kavijat_kkt.php, kavijat_paivat.php, kavijat_vkot.php ja tilastotiedot.php sekä tyylit.css. Avaamalla nettiselaimellasi index.php-tiedoston, voit katsoa tiedot kävijöistä, tyhjentää kavijatiedot.php -tiedoston manuaalisesti ja katsoa tilastotietoja kävijöistä yms. Kansio: -
Sisältö: -
graafit/ Tämä kansio sisältää tiedostot: kuvaaja_31paivaa.png ja kuvaaja_kokoAika.png. Admin-kansiossa oleva tilastotiedot.php-skripti tallentaa graafisen kuvaajan kävijöistä tähän kansioon PNG-kuvana. Kansio: -
Sisältö: 766
ipEsto/ Tämä kansio sisältää tiedostot: ipesteet.txt, paivat.txt ja tunnit.txt. Ipesteet.txt-tiedostoon tallennetaan kävijöiden ip-osoitteet, jotta voitaisiin erottaa, kuka on uusi kävijä. Niitä, joiden ip-osoitteet ovat jo tiedostossa, ei lasketa uusiksi kävijöiksi. Tämä tiedosto nollataan aina tunnin välein tai päivän vaihtuessa. Aika, jolloin ipesteet.txt-tiedosto nollattiin, merkitään ylös paivat.txt- ja tunnit.txt-tiedostoihin. Kansio: -
Sisältö: 766
kuukaudet/ Tänne kansioon tallennetaan kävijöiden määrät kuukausia kohden. Esimerkiksi vuoden 2003 tammikuun kävijämäärä tallentuu tiedostoon nimeltä 2003#01.txt ja saman vuoden helmikuun kävijämäärä tiedostoon 2003#02.txt. Tässä kansiossa jo olevan tiedoston 2003#01.txt voi poistaa. Kansio: 777
Sisältö: -
viikot/ Tänne kansioon tallennetaan kävijöiden määrä viikkoja (1-53) kohden. Esimerkiksi vuoden 2003 ensimmäisen viikon kävijämäärä tallennetaan tiedostoon 2003-vko-1.txt ja saman vuoden 30. viikon kävijämäärä tallennetaan tiedostoon 2003-vko-30.txt. Tässä kansiossa jo olevan tiedoston 2003-vko-1.txt voi poistaa. Kansio: 777
Sisältö: -
paivat/ Tänne kansioon tallennetaan kävijöiden määrä päiviä kohden. Esimerkiksi vuoden 2003 tammikuun 30. päivän kävijämäärä tallennetaan tiedostoon 2003-01-30.txt . Tässä kansiossa jo olevan tiedoston 2003-01-30.txt voi poistaa. Kansio: 777
Sisältö: -
tunnit/ Tämä kansio sisältää 24 tiedostoa: 00.txt, 01.txt...23.txt. Näihin tiedostoihin tallennetaan kävijät tiettyä tuntia kohden. Jos joku tulee sivuillesi esim. kello 4 päivällä (eli klo 16), tallentuu merkintä hänestä tiedostoon 16.txt. Kansio: -
Sisältö: 766
viikonpaivat/ Tämä kansio sisältää 7 tiedostoa: Mon.txt, Tue.txt...Sun.txt eli tekstitiedostojen nimet ovat viikonpäivät englanniksi. Näihin tiedostoihin tallennetaan kävijät tiettyjä viikonpäiviä kohden. Jos joku tulee sivuillesi esim. tiistaina, tallentuu hänestä merkintä tiedostoon Tue.txt. Kansio: -
Sisältö: 766

Jotta kävijälaskuri toimisi, täytyy jokaisen HTML-dokumentin alkuun (.php-päätteinen) laittaa alla esitetty koodipätkä.

Jokaisen dokumentin alkuun

PHP-kävijälaskurin ylläpidon hallintasivu

Tältä näyttää kävijälaskurin ylläpidon hallintasivujen etusivu

Muuta yllä olevasta koodista kotisivunOsoite-muuttujan arvo vastaamaan oman kotisivusi juuren URL-osoitetta. Esim. jos kotisivusi ovat MBnetissä, laita muuttujan arvoksi "koti.mbnet.fi/tunnuksesi". MVnetin tapauksessa muuttujan arvo olisi "www.mvnet.fi". Älä laita kauttaviivaa osoitteen loppuun eikä http:tä osoitteen eteen.

Muuta myös tiedostosta peruskoodi.php seuraavat kursivoidut kohdat:

$kayttaja = "kayttajatunnuksesi";
$salasana = "salasanasi";

Eli laita kursivoitujen tekstien paikalle haluamasi käyttäjätunnus ja salasana. Näiden avulla pystyt katsomaan tietoja kävijöistä, tyhjentämään tiedot kävijöistä ja katsomaan tilastotietoja kävijöistä suoraan nettiselaimellasi. Käyttäjätunnuksen ja salasanan avulla varmistetaan se, ettei kukaan muu kuin sinä pysty lukemaan tietoja kävijöistä, tyhjentämään kavijatiedot.php -tiedostoa tai katsomaan tilastotietoja kävijöistä.

Kävijätietojen tarkastelu

Tiedot kävijöistä taulukoituna

Tiedot kävijöistä esitetään selkeästi taulukoituna kuvan kaltaisesti.

Kun joku nyt tulee sivuillesi, lisätään yksi kävijä lisää laskureihin ja kävijästä merkitään tiedot ylös kavijatiedot.php -tiedostoon jne. Voit lukea kavijatiedot.php-tiedoston tietoja menemällä selaimellasi admin-kansioon ja avaamalla sieltä sivu index.php ("Kävijätietojen hallinta" -sivu). Kirjoita sitten käyttäjätunnuksesi ja salasanasi vaadittuihin kenttiin, valitse toiminnoksi "Katso kävijätiedot" (oletusarvona) ja paina "Lähetä lomake". Tiedot kävijöistä on tallennettu selkeästi taulukko-muotoon. Taulukon ensimmäinen sarake kertoo kävijästä päivämäärän ja ajan, jolloin kävijä tuli sivulle. Toinen sarake kertoo kävijän ip-osoitteet. Kolmas sarake taasen kertoo www-osoitteen, josta kävijä tuli sivuille (referer). Jos kävijä ei tullut linkin kautta sivullesi, lukee osoitteen paikalla suora. Neljännessä sarakkeessa on sivu, jonka kävijä latasi ensin ja viimeisessä sarakkeessa ovat kävijän internet-selaimen ja käyttöjärjestelmän tiedot.

Jos taas haluat tyhjentää kavijatiedot.php -tiedoston manuaalisesti (se onkin hyvä silloin tällöin tyhjentää manuaalisesti, koska tietoja kävijöistä kasautuu melkoinen määrä ennen kun tiedosto tyhjenee automaattisesti) avaa "Kävijätietojen hallinta" -sivu ja toimi samoin kuten kävijätietoja katsoessasi, mutta valitse toiminnoksi "Tyhjennä kävijätiedot". Paina "Lähetä lomake" jolloin tiedot, jotka ovat kavijatiedot.php -tiedostossa tyhjentyvät.

Tilastotietojen tarkastelu

Tilastotietoja kävijämääristä

Tässä esimerkki MVnetin kävijämääristä tuotetuista tilastotiedoista

Jos haluat katsoa tilastotietoja kävijöistä, avaa taas "Kävijätietojen hallinta" -sivu ja valitse toiminnoksi "Katso tilastotiedot kävijöistä". Laita taas käyttäjätunnuksesi ja salasanasi niille vaadittuihin kenttiin ja paina "Lähetä lomake". Tilastotiedoissa on seuraavia tietoja kävijöistä taulukoituina: kävijät yhteensä, lataukset yhteensä, sivujen lataukset kävijää kohden, kävijät tänään ja eilen, kävijät tällä ja viime viikolla, kävijät tässä ja viime kuussa, kävijät tänä ja viime vuonna, tämän ja viime vuoden päivittäiset, viikoittaiset ja kuukausittaiset keskiarvot, kävijät viikonpäiviä kohden sekä kävijät kellonaikoja kohden.

Jos taas haluat katsoa tietyn vuoden kävijämäärät vuoden kaikkia päiviä, viikkoja tai kuukausia kohden, valitse "Kävijätietojen hallinta" -sivulta toiminnoksi "Katso kävijät/päivä vuodelta:" tai "Katso kävijät/viikko vuodelta:" tai "Katso kävijät/kuukausi vuodelta:", riippuen siitä mitä haluat katsoa. Laita sitten haluamasi toiminnon perään sen vuoden numero, josta haluat tietoja katsella (muotoa 2003 tai 2004 jne.). Katso, että käyttäjätunnuksesi ja salasanasi ovat oikein ja paina lopuksi "Lähetä" ja nyt näet tiedot kävijämääristä valitsemanasi vuonna.

Kävijämäärä näkyviin sivuille

Jos haluat sivullesi kävijämäärän tai sivunlataukset näkyviin, laita sivullesi haluamaasi kohtaan alla olevat koodipätkät (alla esitetyt koodipätkät toimivat vain sivulla, jossa on "Jokaisen dokumentin alkuun"-koodipätkä):

Kävijämäärä:

<?php include($kavijatURL."kavijat.txt"); ?>

Lataukset:

<?php include($kavijatURL."lataukset.txt"); ?>

Huom! Suosittelen ehdottomasti käyttämään kavijat-kansiossa htaccess-salausta, jolloin kukaan ei varmasti pääse urkkimaan luvatta tietoja kävijöistäsi. Htacces-salaus ei vaikuta PHP-koodin toimivuuteen. Kaikkia txt-päätteisiä tiedostoja voi kuka tahansa lukea, jos htaccess-salausta ei käytetä. Näitä ei voi suojata php:llä. Se miten htaccessia tarkalleen käytetään, riippuu kotisivutilan tarjoajasta. Yleensä näillä palvelimilla on tähän salaukseen selkeät ohjeet. Ilman htaccess-salaustakin kävijälaskuri toimii kyllä luotettavasti.

Graafinen kuvaaja kävijöistä

Tilastotiedot.php-sivun lopussa ovat kävijämääristä piirretyt graafiset kuvaajat. Tilastotiedot.php-sivulla on PHP-skripti, joka piirtää graafisen kuvaajan kävijämääristä aina, kun sivu luetaan selaimella. Kuvaajia on oletuksena kaksi kappaletta: kuvaaja viimeisten 31 päivän kävijämääristä ja kuvaaja sivuston kävijämääristä koko ajalta. Kuvaajan kävijämääristä voi piirtää mistä tahansa ajanjaksolta, esim. viime vuodelta. Kuvaajalta hahmottaa hyvin kävijämäärän kehityksen halutulta ajanjaksolta.

Graafinen kuvaaja kävijämääristä

Tällaisen kuvaajan PHP-skripti piirsi MVnetin kävijämääristä

Jos haluat lisätä uuden kuvaajan, täytyy muokata hieman tilastotiedot.php-sivun PHP-koodia. Etsi sivulta kohta, jossa lukee /* KUVAAJIEN PIIRTO */. Tämän kommentin alla on funktiokutsuja, jotka kutsuvat piirraKuvaaja-funktiota tietyillä parametreilla, joka taasen suorittaa kuvaajan piirtämisen. Jos siis haluat tehdä uuden kuvaajan, lisäät vain uuden funktiokutsun. Funktiokutsu on aina seuraavanlainen:

piirraKuvaaja ($aloitusPaivamaara, $lopetusPaivamaara, 
	$kavijaTiedotKansio, $kuvanOsoite, $kuvanKokoX, $kuvanKokoY);

Funktion ensimmäinen parametri on siis se päivämäärä, josta kuvaajan piirto halutaan aloittaa ja toinen parametri taasen se päivämäärä, johon kuvaajan piirto halutaan lopettaa. Päivämäärät pitää antaa UNIX-timestamp -muodossa, jollaisen tuottaa esim. date- ja mktime-funktiot. Kolmas parametri kertoo kävijämääriä sisältävien tekstitiedostojen kansion osoitteen, jota ei tarvitse muuttaa. Neljäs parametri kertoo kuvatiedoston osoitteen, johon kuvaaja tallennetaan. Tämä pitää olla eri osoite jokaisella kuvaajalla. Lisäksi kyseinen kuvatiedosto pitää olla olemassa ja se pitää olla chmodattu muotoon 766. Viimeiset kaksi parametria kertovat kuvaajan kuvatiedoston koon pikseleinä. Uuden funktiokutsun lisäksi pitää tietysti lisätä kuva sivulle HTML-kielellä (img-tägi, jonka osoitteena äsken mainittu kuvatiedoston osoite), jotta kuvan saisi näkyviin.

Kuvaaja, joka piirtää graafin sivuston kävijämääristä koko ajalta, alkaa oletuksena päivämäärästä 01.01.2004. Tämä päivämäärä kannattaa muuttaa siihen päivämäärään, josta lähtien sinulla on kävijämäärät tallennettuina. Jos haluat, että kuvaajan piirto aloitetaan esimerkiksi päivämäärästä 15.05.2005, muuta kuvaajan funktiokutsu muotoon:

piirraKuvaaja(mktime(0, 0, 0, 05, 15, 2005), ...

Jos haluat muuttaa kuvaajan värejä, onnistuu se etsimällä tilastotiedot.php-sivulta kohta, jossa lukee /* Määritellään kuvaajan taustan, viivojen ja tekstien värit (RGB-muodossa). */. Tämän kommentin alla on määritelty mm. taustaväri ja graafin viivan värit RGB-muodossa. Kuvankäsittelyohjelmista näet yleensä valitsemasi värin RGB-lukemat.

Seuraava sivu (Palautelomake PHP:llä) >> << Edellinen sivu (Keskustelupalsta PHP:llä)

Sivun kommentit