✔ 最佳答案
個人覺得跟session沒關係,如果其他大大反對我這點,請指點
我建議你用timeout的方法去做
假設你set個active timeout做15分鐘,每當個active timeout倒數完畢後,你就開返個access right俾人
每次個user開任何一個page,總之要叫個server做任何野既時候,你都要將個active timeout重新set做15分鐘,如果15分鐘後,個user都冇load過任何page,咁你就要強迫開返個access俾任何人用,但係如果個user響15分鐘之後先load個page,咁你就迫佢重新login囉
明唔明我講乜?唔明既請再問啦
2007-04-29 19:00:26 補充:
請問樓下:php是server side script,請問怎樣可以detect到關browser事件?我只想到的是較醜陋的方法:用client side script(如javascript)來做個和應…例如關閉視窗時呼叫php…可是問題是…如果我用這個方法的話,假設我不是關browser,而是中斷/截斷連線,那麼個account就會永遠被鎖死了請問樓下高見
2007-04-30 04:26:33 補充:
其實timeout只係需要用一個date-type既variable就得,你或者可以save個variable響database到,我當你個timeout係15分鐘,假設一個user佢成功login既話,咁你就將佢login既時間save落呢個variable度(暫叫tmstmp),例如2007-5-10 16:30,咁你有2個cases,一個係當個account冇人用既情況下,一個係個account有人用緊既情況下…
2007-04-30 04:27:53 補充:
當個user login既時候,check佢既login時間係咪細過、等如或者大過(tmstmp 15分鐘),如果係等於或者大過,咁姐係冇人用緊,批准佢login,如果係細過,咁姐係有人用緊,唔俾login
2007-04-30 04:28:31 補充:
如果個user成功login既話:每當個login左既user佢load server任何一個page時候,check下個load既時間,如果係細過(tmstmp 15分鐘)既話,咁就update個tmstmp做最新時間,同埋批准個user load個新page,如果係等如或者大過(tmstmp 15分鐘)既話,logout個user,叫佢重新login
2007-04-30 04:31:06 補充:
我想feel8335的意思是呼叫類似session_destory的function來把session完結吧
2007-04-30 04:39:00 補充:
我唔會建議你用javascript既closed、onunload等的event來logout,而這樣是不會肯定logout過程成功執行,因為你是用server side scripts來assure login,client-side script的操作不能盡信,幾危險下,如果client side過邊唔reliable,或者有咩估唔到既事情發生,如crash,成個system好容易會有deadlock,咁樣其他user就永遠都唔會用到個system我想feel8335是有甚麼高見,請望佢能幫你解決session上既解決方法