Obliczanie ilu użytkowników online przebywa na wybranej podstronie .

Ostatnia aktualizacja 2 rok temu
MirekMirekAdministrator Administrator
Opublikował(a) 2 rok temu
Obliczanie ilu użytkowników online przebywa na wybranej podstronie .w CMS.PHP Fusion v9.
Taki skrypt jest szczególnie potrzebny jeśli chcemy dowiedzieć się ilu użytkowników , przebywa na wybranej podstronie.
Co prawda CMS. PHP Fusion v9 posiada licznik wbudowany w standardzie ale ten licznik zlicza ilość gości przebywających , na wszystkich podstronach.
Skrypt sprawdzony i działa poprawnie .
Demo widoczne jest na stronie https://nw.ct8.pl/artykul/22/konwerte...
<?php
 /**
 * Stała zawiera nazwę pliku, w którym znajdują się dane o gościach >.
 */
 define('FILE_NAME','nazwa_pliku.php');

 /**
 * Zwraca liczbę sekund, które odpowiadają w czasie liczbie minut podanej w
 * argumencie w funkcji.
 *
 * @param integer $minutes
 * @retrun 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
 * @retrun 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
 * @retrun 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
 * @retrun integer
 */
 function visitors()
 {
 global $online2;

 $online = count($online2);
 if($online == 0)
 return 1;
 else
 return $online;
 } #end function visitors()


 if(file_exists(FILE_NAME))
 {
 $online = file(FILE_NAME);
 foreach($online as $on)
 {
 $part = explode("\t",$on);
 $online2[rtrim($part[0])] = $part[1];
 }
 unset($online2[$_SERVER['REMOTE_ADDR']]);
 $online2[$_SERVER['REMOTE_ADDR']] = time();
 foreach(array_keys($online2) as $on)
 {
 if($online2[$on] < (time() - gsf_minutes('5')))
 unset($online2[$on]);
 else
 $file_ .= "$on \t $online2[$on] \n";
 }
 }
 else
 {
 $file_ = $_SERVER['REMOTE_ADDR']."\t".time()."\n";
 }

 echo ''.visitors();

 $file = fopen(FILE_NAME,'w');
 flock($file, LOCK_EX);
 fwrite($file,$file_);
 flock($file, LOCK_UN);
 fclose($file);
?>

:użytkowników Online:
możesz przeglądać wszystkie wątki dyskusji na tym forum.
nie możesz rozpocząć nowy wątek dyskusji na tym forum.
nie możesz odpowiadać na posty w tym wątku dyskusji.
nie możesz rozpocząć ankietę na tym forum.
nie możesz dodawać załączniki w tym forum.
nie możesz pobierać załączniki na tym forum.
Użytkownicy, którzy uczestniczyli w dyskusji: Mirek

2014 - 2024 © nw.ct8.pl

Polityka prywatności

kontakt

Powered by PHPFusion. Copyright ©2024 PHP Fusion Inc.
Released as free software without warranties under GNU Affero GPL v3.