2011-09-27 69 views
-1

我是PHP的初學者。我遇到了一個與會話相關的問題,我創建了一個包含用戶名,密碼字段和一個帶sessionID的temp_session表的表。 當我用給定的用戶名登錄會話生成和會話將存儲在temp_session表中,當我通過按logout按鈕註銷會話值從tem_session表中刪除。如何在關閉瀏覽器時從表中刪除會話值

現在,我有問題,當我關閉瀏覽器時,我會做什麼,在這種情況下會話過期,但會話值仍然在temp_session表中我想從瀏覽器關閉後temp_session 2分鐘後刪除該值。我將爲此使用什麼邏輯。

+0

只是好奇div'標籤是如何'您問題相關的O_O – zerkms

回答

0

這裏有一個建議,而不是2分鐘爲什麼不當用戶重新登錄到您的應用程序重置值後無效的SessionID。我不是PHP專家,但我猜你應該可以使用session_start處理程序。

如果你仍然想繼續前進,這樣做,那麼你需要設置在用戶表中的時間戳將要每次更新服務器接收到一個請求,然後你可能會希望有一個時間表運行基於您的表更新在時間戳上..你看到你引入的不必要的開銷。

+0

我已經使用了....但我的問題是隻有一個,如何在2分鐘後從表中刪除一個字段 – VijayPatial

0

您可以在關閉瀏覽器的事件並不清楚數據庫的價值,但需要實現合理的解決方案。

需要在會話表中添加時間戳作爲最後的活動時間,設置最後一項活動=當前的時間,如果用戶的最後活動時間和當前時間差不那麼2分鐘否則從數據庫中刪除記錄。

讓我們來討論案件。

當您登錄,您將在數據庫中添加會話。 如果用戶閒置2分鐘以上,我們將從數據庫中刪除會話。 如果用戶標識不空閒超過2分鐘比上次活動將被設置爲當前時間。

+0

是的,這就是它,這實際上是我想要的。還有一個問題,它將如何工作我的意思是會話將存儲在cookie中,2分鐘後會話被刪除,這是瀏覽器關閉或我們正在進行會話的情況。 – VijayPatial

+0

如果用戶關閉瀏覽器並重新打開,則會有新的會話。 –

0

在java中我們可以通過HTTPSessionListner處理,並加在web.xml文件中的條目。這將在會話不活動時調用,session.invalidate()方法可以在我們想要做的操作之後調用post。

所以,你可以嘗試執行相同的PHP或findout與該:)東西

相關問題