簡體   English   中英

WordPress 4.9.3,$ _ COOKIE和session_start()

[英]WordPress 4.9.3, $_COOKIE, and session_start()

我解決了問題,但不知道為什么會起作用。 我希望有人能闡明一些想法?

我有一個WordPress網站。 如果新用戶訪問該站點,則他們會在主頁上看到通用元素。 當他們訪問內部頁面時,將創建一個cookie。 當用戶再次訪問主頁時,他們會看到基於cookie的自定義元素。

我遇到的問題是,當用戶從內部頁面返回首頁時,即使新cookie設置了正確的值,在執行刷新之前也不會重置$ COOKIE超全局變量。 您可以根據需要導航至盡可能多的不同頁面,但是直到執行完字面刷新后,超全局變量才被重置。 這同時使用了setcookie()和直接設置超級全局。

通過在標題中添加session_start()可以解決此問題。 我認為session_start()影響了SESSION超級全局。 為什么此解決方案還會影響COOKIE超全局性?

為什么此解決方案還會影響COOKIE超全局性?

很有可能不是,不是直接-而是通過發送有關緩存的不同標頭 ,它影響了瀏覽器在再次顯示相同URL時被指示檢查更改的方式,而這之前您只是從緩存中獲取了陳舊的副本。

對我來說,cookie也會被緩存似乎很奇怪

嗯,不是cookie本身被“緩存”了-而是根據 cookie在其中進行任何輸出的文檔。 您仍然可以看到所加載頁面的第一個版本-該頁面后面的PHP代碼沒有再次執行,因為瀏覽器實際上並未再次從服務器請求URL。

但是,如果服務器在第一次加載該請求時發送了響應標頭,指示該頁面不應該被緩存(或者在再次顯示該資源之前您先與服務器聯系的客戶端),則它會導致瀏覽器在您提出新請求時返回頁面。

暫無
暫無

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

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