Skrypty > eCounter

Ten skrypt potrafi zliczać wszystkie odsłony, unikalne wizyty, wizyty dzisiaj oraz liczbę gości online, ponadto wyświetla liczbę wczorajszych odwiedzin oraz największą zanotowaną liczbę odwiedzin wraz z datą.

Poniższy fragment kodu najlepiej umieścić gdzieś na początku kodu strony:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
<?php
//========eCounter v2.5.5========
// Autor: Emdek <http://emdek.cba.pl>
// Licencja: GPL
function counter ($CFile) {
         $CData = unserialize (file_get_contents ($CFile));
         $CData[0][2]++;
         if (($Num = (floor (time () / 86400)) - floor ($CData[0][0] / 86400)) > 0) $CData[1] = ($Num > 1)?array_fill (0, 2, 0):array ($CData[1][1], 0);
         if (!$CData[3][$_SERVER['REMOTE_ADDR']]) {
            $CData[0][1]++;
            $CData[1][1]++;
            $CData[3][$_SERVER['REMOTE_ADDR']][0] = time ();
            }
         $CData[0][0] = $CData[3][$_SERVER['REMOTE_ADDR']][1] = time ();
         foreach ($CData[3] as $IP => $Time) {
                 if ((time () - $Time[0]) > 86400) unset ($CData[3][$IP]);
                 if ((time () - $Time[1]) < 300) $Online++;
                 }
         if ($CData[1][1] > $CData[2][0]) $CData[2] = array ($CData[1][1], time ());
         $File = fopen ($CFile, 'a');
         flock ($File, LOCK_EX);
         fseek ($File, 0);
         ftruncate ($File, 0);
         fwrite ($File, serialize ($CData));
         fflush ($File);
         flock ($File, LOCK_UN);
         fclose ($File);
         return ('Odsłony: '.(int) $CData[0][2].'<br />Unikalne: '.(int) $CData[0][1].'<br />Dzisiaj: '.(int) $CData[1][1].'<br />Wczoraj: '.(int) $CData[1][0].'<br />Online: '.(int) $Online.'<br />Najwięcej odwiedzin: '.date ('d-m-Y', $CData[2][1]).' ('.(int) $CData[2][0].")\n".'<!-- Powered by eCounter -->'."\n");
         }
?>

Następnie w miejscu w którym ma być widoczny licznik wklejamy (jako parametr podajemy ścieżkę dostępu do pliku danych):

1
<?= counter ('counterdata.txt') ?>

Aby skrypt mógł zacząć zliczać wizyty należy utworzyć plik danych licznika (o dowolnej nazwie) posiadający CHMOD 666.

Jeśli Twój serwer obsługuje PHP 5, to możesz użyć funkcji file_put_contents do zapisywania danych.

Ostatnia aktualizacja: piątek 30.12.2005, 11:24

Nauka bez religii jest sparaliżowana, religia bez nauki - ślepa. Albert Einstein