2012-02-29 13 views
1

我在每個請求上使用Zend_Session :: start(),因爲我需要保存各種請求之間的值(例如用戶和密碼以便在未來訪問數據庫時重用它)。Zend_Session其中是cookie?

我想知道,如果當我使用過Zend_Session :: start()創建的cookie,以及最重要的,我可以看到的是存儲位置的路徑(服務器和客戶端)。

我讀,其實使用會話涉及一個cookie的創建,但我不知道,如果同樣是看到了Zend_Session不錯,也有Zend_Http_Cookie

回答

2

Zend_Session組件擴展了標準的PHP會話功能,所以是啓動會話設置一個cookie。會話數據的存儲位置取決於您的配置,默認情況下數據存儲在文件中,其位置由配置值session.save_path控制。

你通常不會存儲在會話密碼 - 一旦用戶通過驗證,你可能只是用戶名存儲在稍後訪問會話。如果您使用該組件,Zend_Auth將爲您處理所有這些事情。

忘掉Zend_Http_Cookie,它無關,與用戶的cookie。

+0

謝謝!!如果我只保存用戶名到一個會話中,我可以在哪裏取密碼做一個連接數據庫? – 2012-02-29 20:18:17

+0

這個想法是,只有在用戶通過身份驗證後(即他們已登錄),您纔會存儲用戶名。然後在隨後的請求中,您可以相信會話中的用戶名屬於當前用戶,因此您不需要密碼。 – 2012-02-29 20:22:09

+0

好的,但在我的Web應用程序中,在後續請求中,我需要調用metod i5_connect($ user,$ pwd)從DB2獲取數據。我不需要密碼? – 2012-02-29 20:27:14

2

所有會議需要一些方法使客戶端進行身份驗證。

含義,服務器將給予客戶機的密鑰(或會話ID),通常以cookie的形式,和鏈接(內部,在服務器側)會話變量到該ID。

當客戶端發送的請求時,它也與餅乾,它允許服務器以獲取與該ID相關聯的變量,並允許由程序員使用發送會話ID。

每個瀏覽器都改變cookie的路徑。

這意味着客戶端只有ID,客戶端不知道會話變量中是什麼,他看不到它們。


現在我不知道Zend的非常好,但我認爲Zend_Session是會話,而Zend_Http_Cookie是一個實際的cookie(其中變量本身的值存儲在cookie中)。不要將關鍵信息存儲在cookie中,因爲它易於閱讀和更改。

相關問題