簡體   English   中英

頁面之間的數據:$ _SESSION vs. $ _GET?

[英]data between pages: $_SESSION vs. $_GET?

好的,首先,這不是關於表單,這是關於用戶瀏覽網站時的一致布局。

讓我解釋:

如果我們想象一個(非ajax)數碼相機在線商店,說有人在DSLR部分並指定以圖庫模式查看相機並按價格訂購。 然后他們點擊Compact相機的頁面。 如果他們選擇的“觀點”我們被轉移到這個新頁面,那將符合用戶的利益。

現在,我要說使用會話 - 我錯了嗎?

我是否應該注意一些小會話變量的性能問題(即view = 1,orderby = price)?

說到表演,兩種解決方案都不應該有太多問題。

有些事情需要考慮:

  • 使用GET,如果URL被復制粘貼(在電子郵件或MSN中) ,另一個將接收URL的人將具有相同的GET參數
    • 這是件好事還是沒有?
  • 另一方面,如果URL被復制粘貼,則不會共享會話
    • 這意味着第一個人會對另一個人說“ 鑰匙,看看這個 ”,第二個人不會看到同一頁; 我應該添加書簽相同的東西。
  • GET特定於每個URL
    • 雖然SESSION在用戶的所有選項卡中共享
    • 這意味着,如果您不使用Session,那么同時使用多個選項卡進行瀏覽會導致麻煩

我會說兩者同時使用。 將其存儲在會話中,但也將其放在頁面的get參數中。

為什么? 通過這種方式,用戶可以在頁面之間攜帶他的選項,但是他們也在URL中,因此如果他將搜索結果發送給他的朋友,他的朋友就會以與他完全相同的方式看待他們。

不,通過將那些小變量放在那里,會話的性能不會降低。 除非您在會話中存儲單片數組,否則加載會話的絕大部分時間都將從其存儲介質(文件,數據庫,內存緩存等)中讀取它。

你應該在你的情況下使用GET。

Web開發中有一個簡單的規則:每個包含不同內容的頁面都必須擁有自己的地址。 因此,客戶可以將任何頁面保存到收藏夾中,然后將其發送到frend。 在底部是痛苦的,然后有人向您發送指向特定頁面的鏈接,說“看!” 但網站使用框架,你登陸首頁,不知道在哪里看。

您可以將用戶的偏好保存到他的個人資料/ cookie(不是會話)中,但也應該反映在地址欄中。

用於完全不同目的的會話,購物車就是一個例子。

這是一個主觀問題,無論哪種方式都可以。

我個人會選擇會話,因為它不會干擾URL,所以人們可以根據需要為網址添加書簽。

然而,對於那個問題的論點是,如果它們為它添加了書簽,如果使用$ _SESSION完成,它們可能會看到不同的內容。

暫無
暫無

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

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