Cześć !
Chciałem napisać licznik, który by zliczał, ile osób w danej chwili ogląda moją strone, ale sesje to dla mnie czasrma magia :/.
Czytałem manuala, ale w ząb niewiem jak to napisać.
Może mi ktoś pomóc z tym licznikiem ?
<?php /** * Plik zawiera kod licznika osób online * @author Łukasz Janicki <darkspirit@strefaphp.net> * @copyright copyLeft * @link http://strefaphp.net * @version 1.0 */ /** * Stała zawiera nazwę pliku, w którym znajdują się dane o gościach online. */ /** * Zwraca liczbę sekund, które odpowiadają w czasie liczbie minut podanej w * argumencie w funkcji. * * @param integer $minutes * @return integer */ function gsf_minutes($minutes) { return 60 * $minutes; } #end function gsf_minutes() /** * Zwraca liczbę sekund, które odpowiadają w czasie liczbie godzin podanej w * argumencie w funkcji. * * @param integer $hours * @return integer */ function gsf_hours($hours) { return 3600 * $hours; } #end function gsf_hours() /** * Zwraca liczbę sekund, które odpowiadają w czasie liczbie dni podanej w * argumencie w funkcji. * * @param integer $days * @return integer */ function gsf_days($days) { return 86400 * $days; } #end function gsf_days() /** * Zwraca liczbę osób online. Liczba ta musi być większa od 0 gdyż ktoś musi * przeglądać stronę skoro skrypt jest wykonywany;] * * @param void * @return integer */ function visitors() { if($online == 0) return 1; else return $online; } #end function visitors() { /** zapisujemy wszystkie linie pliku jako osobne elementy w tablicy $online */ foreach($online as $on) # każdy element tablicy... { /** tworzymy nową tablicę typu: [IP_GOSCIA] = DATA_PRZELADOWANIA */ } /** usuwamy z tablicy element o IP takim jak IP odwiedzającego */ /** tworzymy nowy element w tablicy o IP takim jak IP odwiedzajacego */ { /** sprawdzamy czy element o danym kluczu, ma czas przeładowania strony mniejszy niż (aktualny czas - przedział czasu ludzi online) * jeśli tak usuwamy element, jeśli chcemy zamiast przedziału w minutach, mieć przedział w godzinach lub dniach zmieniamy nazwę funckji na gfs_hours lub gfs_days. * jeśli nie, dopisujemy do zmniennej wpis typu: [ADRESS_IP] t [DATA_PRZELADOWANIA] n - gdzie n to znak nowej lini, a t inny separator */ if($online2[$on] < ($time - gsf_minutes('5'))) else $file_ .= \"$on t $online2[$on] n\"; } } /** jeśli plik z goścmi onlinie nie istnieje, tworzymy zmienną z wpis typu: [ADRESS_IP] t [DATA_PRZELADOWANIA] n - gdzie n to znak nowej lini, a t biały znak */ else $file_ = $_SERVER['REMOTE_ADDR'].\"t\".time().\"n\"; /** tworzymy nowy plik do zapisu,jeśli plik istnieje jego poprzednia zawartość zostaje skasowana */ ?>