Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] poszukiwany licznik !
Forum PHP.pl > Forum > Przedszkole
spec_u
Poszukuje skryptu licznika, który wyświetlał by aktualną ilość użytkowników znajdująch się na stronie.

w style: "gości online: 108"

Jeśli macie pod ręką taki skrypt to podzielcie się, z góry dzięki ;- ))) cool.gif
kossa
"Pod ręką" jest wyszukiwrka na forum, a wątków na ten temat było wiele. Poszukaj...

Łukasz
nib
Proszę:
  1. <?php
  2.  
  3.  
  4.  /**
  5.    * Stała zawiera nazwę pliku, w którym znajdują się dane o gościach online.
  6.    */
  7.  define('FILE_NAME','on.line.php');
  8.  
  9.  /**
  10.    * Zwraca liczbę sekund, które odpowiadają w czasie liczbie minut podanej w
  11.    * argumencie w funkcji.
  12.    *
  13.    * @param integer $minutes
  14.    * @retrun integer
  15.    */
  16.  function gsf_minutes($minutes)
  17.  {
  18. return 60 * $minutes;
  19.  } #end function gsf_minutes()
  20.  
  21.  /**
  22.    * Zwraca liczbę sekund, które odpowiadają w czasie liczbie godzin podanej w
  23.    * argumencie w funkcji.
  24.    *
  25.    * @param integer $hours
  26.    * @retrun integer
  27.    */
  28.  function gsf_hours($hours)
  29.  {
  30. return 3600 * $hours;
  31.  } #end function gsf_hours()
  32.  
  33.  /**
  34.    * Zwraca liczbę sekund, które odpowiadają w czasie liczbie dni podanej w
  35.    * argumencie w funkcji.
  36.    *
  37.    * @param integer $days
  38.    * @retrun integer
  39.    */
  40.  function gsf_days($days)
  41.  {
  42. return 86400 * $days;
  43.  } #end function gsf_days()
  44.  
  45.  /**
  46.    * Zwraca liczbę osób online. Liczba ta musi być większa od 0 gdyż ktoś musi
  47.    * przeglądać stronę skoro skrypt jest wykonywany ;]
  48.    *
  49.    * @param void
  50.    * @retrun integer
  51.    */
  52.  function visitors()
  53.  {
  54. global $online2;
  55.  
  56. $online = count($online2);
  57. if($online == 0)
  58.  return 1;
  59. else
  60.  return $online;
  61.  } #end function visitors()
  62.  
  63.  
  64.  if(file_exists(FILE_NAME))
  65.  {
  66. $online = file(FILE_NAME);
  67. foreach($online as $on)
  68. {
  69.  $part = explode("t",$on);
  70.  $online2[rtrim($part[0])] = $part[1];
  71. }
  72. unset($online2[$_SERVER['REMOTE_ADDR']]);
  73. $online2[$_SERVER['REMOTE_ADDR']] = time();
  74. foreach(array_keys($online2) as $on)
  75. {
  76.  if($online2[$on] < (time() - gsf_minutes('5')))
  77. unset($online2[$on]);
  78.  else
  79. $file_ .= "$on t $online2[$on] n";  
  80. }
  81.  }
  82.  else
  83.  {
  84. $file_ = $_SERVER['REMOTE_ADDR']."t".time()."n";
  85.  }
  86.  
  87.  echo 'Gości na stronie: '.visitors();
  88.  
  89.  $file = fopen(FILE_NAME,'w');
  90.  flock($file, LOCK_EX);  
  91.  fwrite($file,$file_);
  92.  flock($file, LOCK_UN);
  93.  fclose($file);
  94. ?>
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.