我正在構建一個小應用程序,用戶可以使用CodeIgniter登錄到我應該在PHP會話中存儲哪些數據?
我的問題是,當用戶登錄時,建議在會話中存儲大量用戶個人信息(如他們的用戶ID,姓名,電子郵件和電話號碼)。或者,我應該嘗試保留個人信息,只保留他們的用戶ID在會話中?
我不想爲了獲取一些或用戶的基本信息而不斷地進行數據庫查詢。
更新
我將使用一個數據庫來存儲他們所有的信息,我只是想知道,當他們登錄,是它最好保持存儲在會話,以及在他們的數據數據庫?
感謝
我正在構建一個小應用程序,用戶可以使用CodeIgniter登錄到我應該在PHP會話中存儲哪些數據?
我的問題是,當用戶登錄時,建議在會話中存儲大量用戶個人信息(如他們的用戶ID,姓名,電子郵件和電話號碼)。或者,我應該嘗試保留個人信息,只保留他們的用戶ID在會話中?
我不想爲了獲取一些或用戶的基本信息而不斷地進行數據庫查詢。
更新
我將使用一個數據庫來存儲他們所有的信息,我只是想知道,當他們登錄,是它最好保持存儲在會話,以及在他們的數據數據庫?
感謝
您應該只在跟蹤當前用戶的會話中保留臨時數據。除此之外,其他任何東西都應該隱藏在數據庫中。
我應該在會話中存儲user_id還是更好如果我使用session_id來標識用戶?只需將會話ID添加到數據庫以建立用戶標識和會話標識之間的關係? –
用戶標識通常由許多應用存儲在會話中,所以我會說它的安全。 –
謝謝:)你的回答已經幫助:) –
會話沒有存儲數據的可靠的地方。任何時候用戶註銷(或者離開他們的計算機一小時),他們的會話都會被清除。您需要保留的任何信息都應存儲在永久性數據存儲區(通常是數據庫)中。該會話用於與用戶當前與您網站的互動有關的信息。這可以包括登錄用戶的用戶ID,閃爍(在下一個請求中顯示的一次性警報,然後擦除)等等。
基本上,只存儲會話中的東西,你不會不在乎失去。
另外,不要擔心做數據庫查詢。你可以稍後處理 - 如果它成爲一個真正的問題。
他們的詳細信息存儲在數據庫中,我只想知道我可以在會話中登錄時存儲什麼樣的信息。我已更新我的答案:) –
我不確定是否有正確的答案。
在會話中存儲數據是一個很好的技巧,允許輕鬆訪問,但請記住,根據您如何編寫持久性會話數據,您仍然需要讀取文件或數據庫來獲取會話數據回來!
通常我會在會話數據中存儲有關用戶及其當前會話的非常基本的信息。這是從數據庫中提取的所有數據,臨時存儲在會話中,而被吹走的會話沒有任何實際效果,因爲它們將被強制重新登錄,並且我將重新填充數據庫中的數據。
上面列出的具體信息應該是安全的。
在存儲太多個人信息之前,請確保您瞭解會話周圍的潛在安全問題。這個SO問題有一些很好的信息:PHP Session Fixation/Hijacking
感謝您的深入解答。我會檢查你的答案是否正確,但其他人只有49個重點:答案是非常有幫助,雖然:) –
你可以使用會話,但作爲@lyoshenka下面的答案說,有一些事情要考慮。我也不會建議在會話中存儲安全數據。 – crafter