Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [ZendFramework]Tylko jeden użytkownik może zalogować się na swoje konto.
Forum PHP.pl > Forum > PHP > Frameworki
darko
Witam!
Szukam, szukam i nic... Chciałbym dowiedzieć się, w jaki sposób można rozwiązać problem jednoczesnego logowania się na konto użytkownika X przez dwie różne osoby z dwóch różnych komputerów bez konieczności rejestrowania historii logowań. Chodzi o wyeliminowanie potencjalnych sytuacji, kiedy dwóch adminów posiadających jedno konto administratora loguje się w mniej więcej tym samym czasie i jeden wykonuje jakieś operacje w systemie i drugi, mieszając kompletnie w bazie. Nie wiem, jak zrobić, że w sytuacji, kiedy jest już zalogowany jeden admin - jeśli nastąpi próba zalogowania się drugiego (na to samo konto) - logowanie zostanie odrzucone. Jakieś pomysły? Pozdrawiam.
ps. mój mechanizm logowania wykorzystuje Zend_Auth i Zend_Acl.
pedro84
Możesz na przykład dodać pole w tabeli użytkowników, taką blokadę, podczas logowania dodajesz odpowiednią wartość, podczas każdego logowania sprawdzasz, jeśli zwraca wartość (np. 1) wtedy nie logujesz. Oczywiście, przy wylogowaniu możesz zmieniać wartość.
Fakt, głupie rozwiązanie :/

PS. Dwóch adminów nie powinno mieć tego samego konta.

A nie mogłbyś utworzyć rozwiązania podobnego jak w vBulletin'ie?

@down: Sorry za wprowadzenie w błąd.
darko
Cytat(pedro84 @ 17.06.2010, 10:54:35 ) *
Możesz na przykład dodać pole w tabeli użytkowników, taką blokadę, podczas logowania dodajesz odpowiednią wartość, podczas każdego logowania sprawdzasz, jeśli zwraca wartość (np. 1) wtedy nie logujesz. Oczywiście, przy wylogowaniu możesz zmieniać wartość.

PS. Dwóch adminów nie powinno mieć tego samego konta.

To rozwiązanie nie uwzględnia sytuacji, w których użytkownik się nie wylogował tylko zamknął kartę lub przeglądarkę. Wtedy w ogóle nie będzie mógł się zalogować na to konto, dopóki sesja/ciastko nie wygaśnie. Co wtedy? Wiem, że dwóch adminów nie powinno mieć tego samego konta, ale to nie mój wymysł : - /
zend
Rozwiązanie jest proste, sesje zapisujesz w bazie sess_id | data | modyfikacja | id_użytkownika (jeśli istnieje), przy logowaniu sprawdzasz czy w tabeli z sesjami istnieje id użytkownika. Zdaje się że będziesz musiał nadpisać adapter do Zend_Auth, ale to już nie powinno stanowić problemu.
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.