2013-07-09 89 views
-2

EDIT(10年7月13日):目的VS只有餅乾

所以這本書只是想說明餅乾VS會話的功能和最終的例子是結合了他們兩個。但從功能的角度來看,這並沒有多少意義。最後一個例子是:

使用user_id設置cookie,並將會話變量設置爲user_id。由於會話變量在瀏覽器關閉時被刪除,因此請確定cookie是否已設置,並且如果已設置,請將user_id複製到會話變量,以使日誌持久性比瀏覽器關閉更長。

請注意,這是一本初學者的書,不是真正的功能/實用的書。

DONE編輯

我讀的Head First PHP和關於持久性如何優異是通過從現有的Cookie變量復位會話變量使用cookie和session變量書談判當你再次打開瀏覽器。

但是,當您考慮這個問題時,除了使用cookies之外,如果再使用這兩個cookie,那麼重新使用會話又有什麼意義?也就是說,我不是在談論會話ID cookie,而是在談論將cookie變量直接複製到會話變量 - 沒有得到地址或類似的東西。

+0

我編輯了你的標題。請參閱:「[應該在其標題中包含」標籤「](http://meta.stackexchange.com/questions/19190/)」,其中的共識是「不,他們不應該」。 –

+1

這並不完全清楚。你可以添加代碼片段來說明你正在做的比較嗎? –

+0

整個cookie數據傳輸從用戶到服務器以往任何頁面訪問,你想要的最低數量的數據,你可以逃走在一個效率\安全 – 2013-07-09 03:41:35

回答

2

Cookie對最終用戶可見,用戶可以更改它們。如果您需要存儲用戶應該無法查看或僞造的數據,則應使用會話。會話數據存儲在服務器上,而不是存儲在用戶的PC上。會話使用單個cookie,即會話ID,它只是一個隨機字符串,用作會話存儲的密鑰。如果用戶修改它,它很可能會導致密鑰不匹配任何內容 - 這足以讓他們猜測用於某個其他用戶的會話ID非常困難。

您可以通過對所有內容進行加密來實現與Cookie類似的功能,但爲什麼要在完成所有工作後才能使用會話來處理它?唯一的原因是如果您的服務器定期重置會話,並且您需要的持續時間比這更長。

+0

我假設他是基於所提供的圖片的餅乾專家 – 2013-07-09 03:47:53

+0

我認爲會議被破壞/用戶關閉瀏覽器時重置?我如何將會話持久性設置爲無限期或類似的 - 直到用戶註銷,並忽略瀏覽器關閉? – user1940800