Autor | Zpráva | ||
---|---|---|---|
Andy Profil * |
#1 · Zasláno: 25. 3. 2009, 07:38:17
Skratim to..
Zadanie : - aplikacia ku ktorej moze byt prihlaseny len jeden uzivatel na editaciu. - ak je bez necinnosti 30min a nezatvoril aplikaciu, automaticky odhlasit, aby mal pristup iny uzivatel. - ak je nutne, admin moze uzivatela odhlasit nutene. Vobec netusim ako na to. Ludi prihlasnujem cez $_SESSION["id"]. if (isset($_SESSION["id"])) return true; else return false; Viem sa odhlasit sam unset($_SESSION["id"]); Nejake ukazkove riesenie by pomohlo.. Vdaka. |
||
AM_ Profil |
#2 · Zasláno: 25. 3. 2009, 08:10:18
Nebudeš a dokonce ani nejde odhlásit cizí session. Jednoduše k článku do DB ulož timestamp, kdy ho uživatel začal editovat - popř. ideálně by se mohlo AJAXem dávat serveru vědět, že editor je stále otevřený, kdyby sis s tím hodně hrál, měl bys tam i detektor nečinnosti, aby když uživatel okno nezavře, ale jen zahodí do pozadí, ho to také po půlhodině odhlásilo (tedy odesílat požadavky na aktualizaci timestampu každých pět minut pouze v případě, že uživatel řekněme během posledních pěti minut udělal nějakou úpravu). Potom udělat ošetření, že pokud se o editaci pokusí někdo jiný, ověří se timestamp u článku - pokud je starší, než půl hodiny, přebere editaci nový uživatel.
|
||
Andy Profil * |
#3 · Zasláno: 25. 3. 2009, 09:14:17
teraz ma napadlo, nedalo by sa to riesit nejako cez LOCK TABLES pre uzivatelov ktory nemaju prava admina? Akurat neviem ako dlho ostane tabulka zamknuta, pripadne ine neduhy..
|
||
Joker Profil |
#4 · Zasláno: 25. 3. 2009, 10:46:44
Andy
nedalo by sa to riesit nejako cez LOCK TABLES pre uzivatelov ktory nemaju prava admina? Nedalo. Prostě informace o session budou v databázi, včetně času posledního načtení stránky (tj. na každé stránce se zkontroluje, zda v databázi existuje záznam o dané relaci mladší 30 minut -ideálně se může kontrolovat i IP a podobně, jako ochrana před session stealing- a pokud existuje, aktualizuje se čas v záznamu) To zajistí automatické odhlášení. Admin by pak mohl nějakou akcí smazat/zneplatnit záznam o session v databázi. Přes nějaký příznak v záznamu se pak dá řešit i aby mohl být přihlášený jen jeden uživatel na editaci, byť jsem přesně nepochopil, co je smyslem toho. |
||
Časová prodleva: 16 let
|
0