Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Logowanie z ograniczeniami
Forum PHP.pl > Forum > PHP
jimens
Cześć!

mam problem,
jak zrobić coś takiego:

mam baze danych mysql.

jest strona ktora pobiera z bazy dane uzytkownikow i wtedy przy logowaniu php sprawdza czy haslo zgadza sie z tym wpisanym w formukarzu i bazie danych. jesli tak to loguje uzytkownika do serwisu.
logowanie oparte jest na sesji.

i tutaj jest wazne pytanie na ktore nie moge znalezc odpowiedzi:
co zrobic zeby ten sam uzytkownik nie mogl sie zalogowac na innym kompie??

- moj pomysl jest taki zeby w bazie danych dodac tabele zalogowani i tam wprowadzic login uzytkownika ktory jest zalogowany.

- wylogowanie usuwalo by go z tabeli zalogowani
i tu kolejny problem - co w momencie gdy ten wlasnie uzytkownik bedzie chcial sie zalogowac na innym komputerze a na poprzednim sie nie wyloguje tylo wylaczy komputer czy tez przegladarke (po prostu zapomni kliknac wyloguj - cala operacja usuniecia go z tabeli zalogowani nie dojdzie do skutku)

prosze o jakies wskazówki bo juz nie moge dac z tym rady.
webdevil
trzymaj w tej tabeli również czas ostatniej aktywności użytkownika - przy każdym wejściu na stronę zmieniaj tą wartość
a przy logowaniu sprawdzaj czy była aktywność przez ostatnie np. 5 minut
Kethrax
Zapisuj w sesji adres IP komputera z którego zalogował sie obecnie userek.
I weryfikuj IP przy logowaniu. Jeżeli jest inne od zapisanego obecnie w sesji to nie loguj.
dr_NO
@Kethrax ae w przypadku zmiennego IP nigdy nie wejdzie na stronę smile.gif
konys
Ja to rozwiazalem poprzez trzymanie danych sesji w bazie (zobacz session_set_save_handler) i wyszukiwanie w danych sesyjnych loginu uytkownika - tzn. jesli w dancyh sesji widnieje juz uzytkownik o podanym identyfikatorze to go ponownie nie logujemy. Nie jest to 100% rozwiazanie problemu (np. gdy uzytkownik wyczysci cookie a garbage collector jeszcze nie zdazy wyczyscic danych sesji i uzytkownik sprobuje zalogowac sie ponownie to zostanie odrzucony), ale wydaje mi sie, ze jest to najbardziej optymalne rozwiazanie.
djstrong
Proszę pamiętać o takich sieciach, w których kolejne zapytania są wysyłane z różnych IP.
konys
@djstrong No wlasnie o tym wspomnial dr_NO a moje rozwiazanie w ogole nie bierze pod uwage IP
djstrong
Pojęcie "zmienne IP" jest głównie kojarzone ze zmianą podczas logowania do sieci (np. neostrada). Nie wiem co miał na myśli dr_NO, ale wolałem dodać, bo mało osób wie o takiej możliwości. W przeszłości byłem w takiej sieci i nie dało się korzystać z wielu "dużych" stron jak i popularnych silników.
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.