![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 7 Pomógł: 0 Dołączył: 24.08.2010 Ostrzeżenie: (0%) ![]() ![]() |
w jaki sposób mogę zrobić skrypt logowania który będzie sprawdzał czy dany użytkownik jest zalogowany niezależnie od tego z jakiej maszyny będzie się logował do systemu. Nie proszę o gotowy skrypt a jedynie o wskazówki będę bardzo wdzięczny.
Pozdrawiam |
|
|
![]() |
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 2 592 Pomógł: 445 Dołączył: 12.03.2007 Ostrzeżenie: (0%) ![]() ![]() |
W bazie, w tabeli z użyszkodnikami dodajesz kolumnę LOGGED i po logowaniu zapisujesz do niej.
Teraz problemem może być oznaczenie wylogowania poprzez zamknięcie przeglądarki. Kliknięcie "wyloguj" nie problem obsłużyć, gorzej z dłuższym czasem braku aktywności lub po prostu zamknięciem okienka przeglądarki. Na szybko, do wyboru widzę dwie opcje. Jeśli masz sesje na bazie danych, to możesz to połączyć i w LOGGED dodać id sesji, jak sesja wygaśnie (po wylogowaniu, bezczynności etc) to automatycznie LOGGED będzie wskazywało na nieistniejący rekord - czyli wylogowany. Jeśli nie, to trzeba by tam wpisywać czas ostatniej aktywności i jeśli jest dłuższy niż ileś tam, to znaczy, że się odłączył i wtedy traktujemy to jako wylogowanie - czyli możliwość ponownego zalogowania z innego miejsca. -------------------- |
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 763 Pomógł: 117 Dołączył: 15.03.2010 Skąd: void Ostrzeżenie: (0%) ![]() ![]() |
Vokiel ma rację... z id_sesji będzie najłatwiej i najlepiej...
Ale zawsze możesz pobawić się z IP użytkownika... Oczywiście jest to dłuższa i bardziej skomplikowana wersja ;P 1. Tworzysz zapytanie na początku każdej podstrony tak, by za pomocą UPDATE zostało dodawane IP użytkownika do kolumny np. ip... 2. W miejscu gdzie ma się wyświetlać czy dany użytkownik jest dostępny, czy też nie dodajesz zapytanie SELECT gdzie ip>0 lub ip=$_SERVER['REMOTE_ADDR'] 3. Przy wylogowaniu stosujesz zapytanie DELETE gdzie kolumna ip zostanie wyczyszczona dla tego użytkownika... I działanie jest proste... przy logowaniu modyfikuje się kolumna ip tego uzytkownika (dodaje się IP usera) ip pusty = offline ip jest równy IP użytkownika lub IP>0 = online przy wylogowaniu usuwasz zawartość ip i po kłopocie Dodaję, że nie sprawdziłem tej metody i wymyśliłem ją z nudów ;D -------------------- Pomogłem? Kliknij `Pomógł`. To nic nie kosztuje, a mnie usatysfakcjonuje! ;)
|
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 2 592 Pomógł: 445 Dołączył: 12.03.2007 Ostrzeżenie: (0%) ![]() ![]() |
@modern-web
No ale do Twojego przykładu trzeba jeszcze dodać znacznik czasu aby obsłużyć brak aktywności i wylogowanie poprzez zamknięcie przeglądarki. -------------------- |
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 471 Pomógł: 89 Dołączył: 29.07.2008 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
pytanie jest blednie postawione, kazdy skrypt logowania spelnia podany warunek "sprawdzania czy uzytkownik jest zalogowany niezaleznie od maszyny". Wyjatkiem sa maszyny ktore nie sa w stanie obsluzyc http - na przyklad tostery albo maszyki do miesa
|
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 763 Pomógł: 117 Dołączył: 15.03.2010 Skąd: void Ostrzeżenie: (0%) ![]() ![]() |
@vokiel
Wiem, dlatego podkreslilem, ze to tylko pomysł/metoda. Wymaga sporego dopracowania ale jest równie funkcjonalny ![]() @yevaud Sprawdza ale w jaki sposób ma się zmieniać status online/offline? Dajmy na to... 1. User się loguje - skrypt wykrywa aktywność i ustawia online... 2. User zamyka przeglądarkę - nie wylogowuje się... Status online pozostaje bez zmian... 3. Zmieniloby się na offline podczas wykonywania skrypty wylogowania... Jak Ty to widzisz bo nie rozumiem...? Sytuacja ma się inaczej gdy logowanie oparte jest o sesje/cookies - wtedy id sesji lub IP jest najlepszym rozwiązaniem ![]() Ten post edytował modern-web 15.09.2010, 12:44:27 -------------------- Pomogłem? Kliknij `Pomógł`. To nic nie kosztuje, a mnie usatysfakcjonuje! ;)
|
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 7 Pomógł: 0 Dołączył: 24.08.2010 Ostrzeżenie: (0%) ![]() ![]() |
sesji na bazie niemam a w jaki sposób zarejestrować czas ostatniej aktywności??
|
|
|
![]()
Post
#8
|
|
![]() Grupa: Zarejestrowani Postów: 6 Pomógł: 0 Dołączył: 21.09.2010 Ostrzeżenie: (0%) ![]() ![]() |
Ja realizuję to w ten sposób, że przy każdym logowaniu tworze token i zapisuję go w bazie i cookie.
Logowanie tego samego użytkownika z innej przeglądarki skonczy się wylogowaniem tego pierwszego. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 21.08.2025 - 12:58 |