![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 13 Pomógł: 0 Dołączył: 23.07.2005 Ostrzeżenie: (0%) ![]() ![]() |
Witam, mój problem polega na tym iż niemam pojęcia jak się wziąść do napisania skryptu który będzie wypisywał mi liste użytkowników którzy aktualnie są online (zalogowani). Mój system logowania opiera się na bazie danych i kodzie identyfikacyjnym przekazywanym w url'u jako zmienna, następnie przy wyciąganiu danych użytkownika do zapytań dodaje poprostu
Kod WHERE <pole tabeli>='$kod_identyfikacyjny' Myślałem o dodaniu do bazy mySQL pola "online" i w zależności czy byłby online czy też ofline pole przyjmowało by wartości "0" i "1", oczywiście wiem jakby ustawić w polu "1" (żeby było online) - przy logowaniu dodać zapytanie do mySQL które zmieniało by to pole na "1". Ale pojawia sie problem przy wylogowywaniu. Otóż gdy użytkownik poprostu zamknie przeglądarke to niewiem co zrobić żeby pole ustawiło się na "0". Gdyby użytkownik klikał np. "wyloguj" to było by miodzio bo wtedy do pliku wylogywującego wpisałbym poprostu zapytanie ustawiające pole "online" na "0". Ale oczywiście prawie nikt nie klikałby "wyloguj" tylko gdy już zrobi co ma zrobić "online" to wyłączy przeglądarke albo przejdzie na inną strone i cenzura ... byłoby że niby jest cały czas online ... Jeśli dobrze kombinuje to powiedzccie co mam zrobić żeby sie samo wylogowywało. Jeśli źle kombinuje a znacie jakiś inny sposób to powiedzcie. Z góry dzięki. poprawki by nospor Ten post edytował nospor 25.08.2005, 20:23:28 |
|
|
![]()
Post
#2
|
|
![]() Grupa: Przyjaciele php.pl Postów: 2 605 Pomógł: 96 Dołączył: 22.10.2004 Skąd: UK Ostrzeżenie: (0%) ![]() ![]() |
Witam,
Kiedyś napisałem coś takiego http://forum.php.pl/index.php?showtopic=28296, ile userów jest online, sprawdzić to możesz po prostu licząć ilość rekordów w bazie. Pozdrawiam! -------------------- Najczęstsze błędy | Jak poprawnie zadać pytanie? | Serwer PHP - od czego zacząć?
SQL Injection | Hashowanie haseł | Jak działają sesje, przykłady ___ The world is yours ... |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 13 Pomógł: 0 Dołączył: 23.07.2005 Ostrzeżenie: (0%) ![]() ![]() |
Hmmm ... szczerze to nic nie rozumiem z tego kodu co napisałeś ... pozatym chyba źle mnei zrozumiałeś, nie chce mieć liczby osób online, chciałbym mieć ich liste.
Np. mam 5 userów w bazie: 1.Władek 2.Zdzichu 3.Zbychu 4.Zenek 5.Franek Zenek i Zdzichu są zalogowani (online) i chcialbym aby mi wypisało w jakiejś tabelce ich nicki. Po chwili Zenek sie wylogował i w tym momencie jeśli urzytkownik odświerzy strone to chciałbym aby Zobaczył w liście online samego Zdzicha. Natomiast po chwili loguje sie zbychu i chciałbym aby po odświerzeniu pokazało i Zdzicha i Zbycha w liście. Na tym miało by to polegać. Np. jest coś podobnego w forum phpBB na samym dole w "ministatystykach" forum jest lista osób online (tak samo jak jest i na tym forum). |
|
|
![]()
Post
#4
|
|
![]() Grupa: Przyjaciele php.pl Postów: 2 605 Pomógł: 96 Dołączył: 22.10.2004 Skąd: UK Ostrzeżenie: (0%) ![]() ![]() |
Tak więc tamten skrypt możesz łatwo sobie przerobić, po zalogowaniu do kolejnego pola doda się nazwa zalogowanego user'a. Wtedy robisz SELECT'a pokazującego wszystkie rekordy z tej tabeli i masz ilu gości jest online i kto jest zalogowany. Należało by stworzyć taką bazę.
Kod r_sid | r_where | r_ip | r_time | r_who I teraz gdy logujesz się na stronie to szukasz r_sid i update'ujesz rekord dodając r_who jako nazwę zalogowanej osoby, w przeciwnym wypadku osoba ta zostanie tylko gościem.
Oczywiście do tego możesz dodać kolejne rekordy takie jak np. id user'a aby go łatwo wyłapać i ew. pokazać jego dane na stronie bez kolejnego zapytania. Jeśli ma wyłapywać tylko zalogowanych to musisz dodać warunek aby pokazywał wszystkich którzy != NULL w polu r_who. Pozdrawiam! -------------------- Najczęstsze błędy | Jak poprawnie zadać pytanie? | Serwer PHP - od czego zacząć?
SQL Injection | Hashowanie haseł | Jak działają sesje, przykłady ___ The world is yours ... |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 7.07.2025 - 02:00 |