簡體   English   中英

將會話數據從一個PHP頁面傳遞到另一頁面是否有效?

[英]Is passing session data from one PHP page to another efficient?

我想知道使用SESSION變量將數據從一個PHP頁面傳遞到另一個PHP頁面是否有效。 我之所以這樣問,是因為我認為SESSIONS僅用於使用戶保持登錄網站的狀態,並替代cookie。 將數據(非敏感數據從頁面通過members.php?name=Joe&age=28這樣的URI傳遞到另一頁面會更好嗎?

PHP會話將cookie寫入瀏覽器,然后將與該會話關聯的數據存儲在磁盤上; 它與include()一樣昂貴,以便在下一頁加載時重新讀回它,這簡直是微不足道的。

另外,除非您創建允許他們進行更改的機制,否則用戶無法更改會話數據。 他們很容易弄亂查詢字符串。

簡短的回答:是的,它高效。

取決於您在做什么。 如果該頁面要求該信息正常運行並且不在登錄之后,則可以通過查詢字符串(例如搜索結果,產品頁面)進行傳遞。 如果是在登錄之后,則使用會話可以使您的URL保持整潔,也使用戶難以濫用頁面(例如,換出查詢字符串中的數據)。

會話對很多事情有用,而不僅僅是登錄信息。 它們非常適合在POST /重定向/ GET周期或其他任何可跟蹤用戶會話狀態(因此稱為名稱)的狀態消息(因此僅保留當前會話),而不是長期永久配置選項。

就效率而言,您需要記住,會話中的任何內容都需要在每次頁面加載時進行序列化和反序列化。 存儲名稱和年齡不會增加太多。 添加一兆字節的圖像上傳可能是不好的。

請記住,會話數據只是臨時持久的,這比效率考慮更為重要。 如果您想始終知道Joe是28歲,則應將其放入數據庫中。 如果僅在單個頁面加載時有用,則可能應保留在URL中或將其發布。 如果您想記住它幾分鍾,可以在會議上放上它。

是的,您可以在SESSION中存儲數據和消息,並且可以從任何頁面進行訪問。 但是請記住,SESSION使用瀏覽器支持來存儲數據。 用戶可以手動刪除它們

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM