Jak wyświetlić ilość zalogowanych użytkowników w PHP? - Wortal.FreelanceMedia.pl
Newsletter
E-Mail:
Mój profil
Login:

Hasło:

Nie masz konta? Zarejestruj siÄ™!
Statystyki
Użytkowników: 19
Artykułów: 20
Komentarzy: 19
Skryptów: 4
Gości online: 2
Użytkownicy online: brak




Wykonamy strony dla firm, osób prywatnych, klubów sportowych, itp. Od prostej wizytówki dla firmy, przez hobbystyczny wortal po bardziej skomplikowane portale, choćby społecznościowe. Oferumy również wykonanie profesjonalnej grafiki. Kontakt gg: 6025719, email: lukiradom@gmail.com. Portfolio: freelancemedia.pl.



Drukuj

Jak wyświetlić ilość zalogowanych użytkowników w PHP?


Potrzebujemy do tego bazy danych i systemu logowania. W tym artykule nie będę pisał, jak taki system stworzyć, ponieważ na naszym wortalu jest osobny artykuł o tym. Jednak będziemy używać kilku funkcji do logowania. Zacznijmy od bazy, która będzie miała tabele: nick, haslo i czas. Rozwiązanie naszego problemu będzie polegało na czasie w formacie uniksowym, czyli ilość sekund od początku ery uniksowej (1 stycznia 1970). Podczas logowania skrypt będzie dodawał do tabeli `czas` aktualny czas uniksowy. Następnie skrypt, który będzie wyświetlał użytkowników online, pobierze tych, których ostatnia aktywność odbyła się max 10 minut temu, czyli 600 sekund. Podczas każdego przeładowania jakiejkolwiek podstrony, odpowiedni skrypt będzie aktualizował tabelę `czas` o aktualny czas uniksowy, podczas wylogowania ustawiony zostanie na 0.

Zaczynamy od skryptu logowania. Nie będziemy tutaj robić żadnych formularzy, gdyż jak wspomniałem wcześniej, istnieje osobny artykuł do całego systemu.
	if(!session_is_registered("uzytkownik")){
	$zap1=mysql_query("select * from `uzytkownicy`  WHERE `nick` = '$login' and `haslo` = '$haslo' ");	
	if(mysql_num_rows($zap1) > 0){
	session_register("uzytkownik");
	$_SESSION['login'] = $login;
	  $czas = date("U");
		$sql = mysql_query("update `uzytkownicy` set `czas` = '$czas' where `nick` = '$login'");	
		}

Jak widać zarejestrowaliśmy sesję, pobraliśmy czas z serwera i zaktualizowaliśmy tabelę naszego użytkownika o ten właśnie czas uniksowy. Następnie stworzymy mały skrypt, który wkleimy we wszystkich naszych podstronach, aby czas był aktualizowany przy każdym wejściu na którąś z nich. Oczywiście, jeżeli użytkownik jest zalogowany.
$login = $_SESSION['login'];
$sql = mysql_query("update `uzytkownicy` set `czas` = '$czas' where `nick` = '$login'");	

Podczas rejestrowania sesji, zapamiętaliśmy login użytkownika w ciasteczkach a w powyższym kodzie wykorzystaliśmy go. Kod powinien być na każdej podstronie.
Teraz czas na skrypt, który wyświetli nam wszystkich zalogowanych użytkowników:
$czas_teraz = date("U");
$czas_max = $czas_teraz - 600;

$sql_zalogowani = mysql_query("select * from `uzytkownicy` where `czas` BETWEEN '$czas_max' AND '$czas_teraz'");

if(@mysql_num_rows($sql_zalogowani) < 1){
	echo 'brak';
} else {

	echo (mysql_num_rows($sql_zalogowani));
	echo '<ul>';
		while($dane = mysql_fetch_array($sql_zalogowani)){
	
			echo '<li>'.$dane['nick'].'</li>';
	
	}

  echo '</ul>';

}

Skrypt wyświetli nam użytkowników, ktorych czas aktywności był pomiędzy czasem 10min temu a czasem aktualnym. To by było wszystko, jednak potrzebujemy skryptu, który wyloguje użytkownika i ustawi wartość pola `czas` na 0:
$login = $_SESSION['login'];
$sql = mysql_query("update `uzytkownicy` set `czas` = '0' where `nick` = '$login'");	
session_destroy();

Cały skrypt jest już gotowy. Nie jest on bardzo skomplikowany, jednak wszyscy mogą go dowolnie modyfikować do swoich potrzeb :)

luki, [23.11.2009 16:04] Czytań: 473


dodaj do flakera

Zaloguj się, aby komentować artykuły.
Brak komentarzy.

Telefon satelitarny - projekty domów parterowych - hipotezy - pila - meble hotelowe - www.sebastianbajerdesign.pl - Kredyt mieszkaniowy - Pozycjonowanie stron - sok z aronii - hotel sopot - pila - ulotki reklamowe - Toto Mix - galeria obrazów

wynajem namiotów | Biuro matrymonialne Agentur-2life | maine coon | taxi władysławowo | Nowe Forum Młodzieżowe | kuchnie | GiżyckoClain | Sympatia | Odchudzanie Na Ekranie | Wydruk | Bezpieczne Zakupy