我使用Zend將會話過期設置爲1,800秒。我想知道,如果每次我代表用戶向瀏覽器發送服務器請求時以及用戶加載新頁面時,會話過期時間是否會刷新爲1800秒,或者當用戶加載新一頁?PHP會話到期 - 它什麼時候刷新?
回答
當用戶加載新頁面時,即瀏覽器代表用戶向服務器發出請求。所以你在上面畫的兩個場景是一樣的。
會話啓動時,會話ID被髮送到瀏覽器,該瀏覽器通常將其存儲在cookie中。瀏覽器然後使用該cookie將會話ID傳遞給服務器,每個請求都標識該用戶。服務器會跟蹤會話何時到期,並且該區域可能會有點棘手(請參閱How do I expire a PHP session after 30 minutes?)
但是,只要您使用相同的瀏覽器發出請求,那麼會話過期將在兩種情況下刷新你已經給了。
保存會話標識(以及源自目標服務器的所有其他Cookie)的cookie會與您對服務器發出的每個請求(無論是頁面刷新還是ajax調用)一起傳播。
所以是的,會話刷新與服務器的任何交互。
基本上它取決於很多事情。很大程度上取決於瀏覽器和瀏覽器的版本。你可以閱讀這篇文章:How do I expire a PHP session after 30 minutes?
當你做session_start()如果是第一次調用,服務器將會話信息保存在/ tmp文件夾中的一個文件中,併發送給你的瀏覽器一個帶有這個文件標識符的cookie,否則服務器獲取cookie標識符並加載文件信息。默認情況下,這個cookie的持續時間是30分鐘。
您可以在php.ini中增加此cookie的時間或手動設置ini_set函數或.htacces文件中的指令。您只需設置指令session.cookie_lifetime。這些值是秒數,或者如果設置爲cookie,則直到您關閉瀏覽器纔有效
另一個可行的解決方案是爲用戶創建令牌系統,例如,手動向瀏覽器發送cookie,該cookie在2個月後過期標記寬度(大的隨機密鑰,保存在帶有用戶標識字段的數據庫表中)。當會話不可用時,您檢查cookie是否存在,您可以使用cookie令牌手動重新創建會話登錄以查找用戶。
- 1. 什麼時候刷新BufferedWriter
- 2. 什麼時候PHP會話結束?
- 3. PHP會話正在刷新爲什麼?
- 4. 什麼時候刷新.pyc文件?
- 5. 什麼時候應該刷新osgi?
- 6. iOS:UITableViewController - 什麼時候刷新(設計)?
- 7. zend會話刷新多次時過期
- 8. 什麼時候servlet HTTP會話啓動?
- 9. 什麼時候會話數據可用?
- 10. 什麼時候ViewState會話被清除?
- 11. 什麼時候需要在swing組件上調用revalidate()來刷新,什麼時候不刷新?
- 12. PHP會話在刷新時不保存
- 13. PHP會話重置刷新
- 14. PHP會話數據刷新
- 15. 刷新PHP會話變量
- 16. PHP會話到期
- 17. PHP會話到期
- 18. PHP會話到期
- 19. 什麼時候應該在php中使用會話變量?
- 20. SqlAlchemy - 什麼時候應該創建新會話?
- 21. intn_t什麼時候使用它,什麼時候不使用
- 22. PHP會話立即到期
- 23. 鎖定PHP日期(),因此它不會在刷新時更改
- 24. 陶OpenGL框架SimpleOpenGLControl - 它什麼時候重繪,什麼時候不會?
- 25. 什麼時候通過itextsharp將內容刷新到PDF文件?
- 26. 刷新時會話丟失
- 27. 刷新時銷燬會話
- 28. 會話不會更新,直到刷新
- 29. struts2創建會話對象,爲什麼和什麼時候?
- 30. 什麼時候和延期
您可以將其設置爲5秒並對其進行測試。 – goat
這可能取決於您使用會話的方式以及您正在使用的選項和配置。 – RockyFord