2012-02-07 92 views
2

我有一個登錄頁面。用戶可以登錄到他們的賬戶並獲得他們的詳細信息。但我很困惑,我應該將用戶詳細信息存儲在會話變量中,還是隻應將ID作爲會話變量傳遞,並在下一頁中使用ID通過類檢索所有詳細信息。PHP會話vs類

如果我只傳遞ID作爲會話變量,那麼我必須在每個頁面中調用該類。請給我正確的想法,我不想多次給班上課,頁面加載速度會更快。

在此先感謝。

+1

您始終可以將對象存儲爲會話。該對象包含其所有屬性。 – JonH 2012-02-07 19:38:10

回答

2

很長時間以來,性能方面並不重要。你可以選擇任何方法。

根據我的經驗,將ID存儲在會話中,並在用戶類中需要時檢索用戶數據是更常見的方法。

存儲包含在會話中序列化形式的用戶數據的對象也是可能的,但

  • 它可以花費大量的存儲器(因爲會話數據被加載到PHP腳本在每次請求)

  • 你不能依靠數據是新鮮的(如果有什麼用戶改變自己的喜好,還是其他什麼東西發生了什麼?)

+0

謝謝你的時間。問題是假設用戶有5個頁面要訪問,並且在每個頁面中,我都通過調用一個類從DB獲取信息,並假設我有500個用戶在線。考慮一下MySql的負載。 我只想讓我的網站運行得更快,更順暢。那麼任何想法..? – kwaxy 2012-02-08 08:54:38

0

我認爲ÿ ou只應將會話ID存儲在會話變量中。如果您在會話中存儲有關用戶的某些信息,則您將不會獲得性能優勢,因爲以後您將不再需要哪種附加信息,並且序列化 - 反序列化也需要一些時間(特別是在將會話存儲在數據庫中時!)。

對於示例我總是在每個請求中加載數據庫中的用戶數據,因爲我必須檢查用戶的幾個原因:他/她是否被鎖定,他/她是否被禁用,他/她的首選語言是什麼,他上次在這裏等等。