2011-12-22 106 views
3

我想使用Zend框架的remeberMe()函數爲用戶創建持久登錄體驗。 以下是我對Session的瞭解:Zend框架記住我的功能

1-當用戶登錄網站時,會在文件系統的服務器上爲他創建一個會話。

2-會話cookie在客戶端生成,持有該會話的標識符。

3-如果用戶關閉瀏覽器,會話cookie將被刪除,而服務器上的會話將持續到垃圾回收器刪除會話的文件(在gc_maxlifetime設置的時間之後)。

4-如果一個用戶離開瀏覽器中打開很長一段時間(超過gc_maxlifetime更長)垃圾收集器會刪除該會議的文件,而會話cookie將持續到它時,在瀏覽器關閉的已刪除。

現在Zend框架的rememberMe()函數是做什麼的?

a-它是否在瀏覽器中創建了一個會話cookie,並持續在呼叫中指定的時間?

b-它是否增加了存儲在服務器上的會話文件的使用壽命,以便垃圾收集器不會刪除該文件?

c-如果它不影響服務器上的會話文件,那麼會話在服務器端到期時會發生什麼,但會話cookie仍然可用?它會被當場刪除或解除,直到它自動到期?

在此先感謝。

+0

1)通常它們存儲在內存中。 2)它也可以通過URL參數訪問(例如,如果cookie被禁用)。 3)cookie和會話壽命是獨立的設置,與GC本身無關;關閉瀏覽器通常不會刪除Cookies 4)再次,會話的到期計時器與GC – Viruzzo 2011-12-22 16:17:26

回答

2

http://framework.zend.com/manual/en/zend.session.global_session_management.html 「在啓動會話之前使用Zend_Session :: rememberMe()來控制持久性會話cookie過期之前的時間長度。」

它將cookie設置爲超出瀏覽器退出狀態,並設置其到期時間。請注意,這是「記住」用戶登錄名的所有網站所做的。

+1

錯誤沒有關係。這只是實現「記住我」功能的一種方式。並非所有的網站都使用這種說法 – 2013-02-11 14:37:08