Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [skrypt] Liczba uzytkownikow online
Forum PHP.pl > Inne > Oceny
__phpion__
Witam!
Ponizej przedstawiam wam moj skrypt do zliczania liczby uzytkownikow aktualnie odwiedzajacych strone. Moze komus sie przyda. Jednoczesnie prosze o obczajenie kodu pod wzgledem ewentualnych bledow. Moze cos przeoczylem, moze da sie go popsuc... Piszczie! smile.gif Z gory dzieki.

  1. <?php
  2.     // zliczanie uzytkownikow online; funkcja wczytaj_plik bazuje na funkcji file - mozna uzyc file 
  3.  
  4.  
  5.     $nazwa_pliku = &#092;"online.txt\";
  6.  
  7.     $online = wczytaj_plik($nazwa_pliku); // wczytanie danych do tablicy
  8.     $stan = &#092;"n\"; // ustawienie na 'n' czyli 'nie ma'
  9.     
  10.     for ($i=0; $i<count($online); $i++)
  11.     {
  12.         $podzial = explode(&#092;" \", $online[$i]); // podzial; separator to spacja
  13.  
  14.         if ($podzial[0] == $REMOTE_ADDR) // jesli jest już w pliku (lub $_SERVER['REMOTE_ADDR'])
  15.         {
  16.             $stan = &#092;"t\"; // zmiana stanu na 't' = 'tak'
  17.             $online[$i] = $podzial[0].&#092;" \".time(); // zmiana czasu uzytkownika
  18.         }
  19.         
  20.         if ((time() - $podzial[1]) > 200) // czas aktywnosci userow; jesli user był nieaktywny przez wiecej niż 200 (chyba milisekund tongue.gif... CHYBA...)
  21.         {
  22.             $online[$i] = &#092;"\"; // to kasujemy jego dane z tablicy
  23.         }
  24.     }
  25.     
  26.     if ($stan == &#092;"n\") // jeżeli nie ma usera trzeba go dodac do tablicy
  27.     {
  28.         $online[count($online)] = $REMOTE_ADDR.&#092;" \".time(); // ip czas (lub $_SERVER['REMOTE_ADDR'])
  29.     }
  30.     
  31.     $plik = fopen($nazwa_pliku, &#092;"w+\");
  32.     flock($plik, 2);
  33.     
  34.         for ($i=0; $i<count($online); $i++) // wpisanie calej tablicy do pliku
  35.         {
  36.             if (strlen($online[$i]) > 0) // dopisz jesli dlugosc elementu > 0
  37.             {
  38.                 fputs($plik, $online[$i].&#092;"rn\");
  39.             }
  40.         }
  41.     
  42.     flock($plik, 3);
  43.     fclose($plik);
  44.     
  45.     $online = wczytaj_plik($nazwa_pliku); // ponowne zaladowanie bazy userow online
  46.     $ile = count($online); // zliczenie
  47.     if ($ile <= 0) $ile = 1; // tak na wszelki wypadek :)
  48.     
  49.     print $ile;
  50.     
  51.     //
  52.  
  53. ?>


Gdzies w necie widzialem podobny skrypt ale napisany w bardziej zakrecony sposob... i kod byl dluzszy...
hwao
http://amnesty.scene.pl/~szacool/hwao/php/Free/On-line/

Nie wiem czy wogule sie oplaca oceniac ten kodzik on jets porpostu maly.

Na goze dalem linka mozesz sobie zobaczyc jak to dzial umnie
__phpion__
Male jest piekne :)
Wiesz, w sumie w nim chodzi tylko i wylacznie o wyswietlenie przyblizonej liczby odwiedzajacych strone, wiec nie widze powodu by musial byc bardziej rzobudowany. Ma wyswietlac tylko liczbe. Nic wiecej. W sumie nie mialem w planach dawac go na forum bo pisalem go na potrzeby strony, ale ze skrypty tego typu nie sa zbyt popularne to go dalem. I nie do oceny - tylko jako ciekawostke. I jezeli sa jakies bledy to prosze o ich wytkniecie.
Pozdrawiam: __phpion__

PS: w twoim skrypcie zostalem potraktowany jako ZERO bo napisalo: Online: 0. Czuje sie zniszczony psychicznie... ;)
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.