在PHP 中,使用$_COOKIE 檢索a 的值呼叫setcookie() 後立即新建立的cookie 可能會導致所需的值無法使用。這種現像是由 HTTP cookie 處理的非同步性質所引起的。
呼叫 setcookie() 時,PHP 腳本會發出一個指令來建立 cookie並將其包含在傳出的 HTTP 回應中。但是,在腳本完成執行之前,回應不會傳送到客戶端(即瀏覽器)。
由於 $_COOKIE 變數反映了目前 HTTP 請求中包含的 cookie,因此在執行期間對 cookie 所做的任何更改伺服器端腳本的執行不會立即在 $_COOKIE 中可用。
來說明時間軸:
為了確保$_COOKIE 反映新設定的cookie 值,您可以在相同的值中覆寫它script:
setcookie('uname', $uname, time() + 60 * 30); $_COOKIE['uname'] = $uname;
此操作在傳出HTTP 回應中建立cookie,並立即在$_COOKIE 變數中設定其值,使其可以在目前腳本執行中使用。
以上是為什麼在 PHP 中使用 `setcookie()` 後我的 Cookie 值遺失了?的詳細內容。更多資訊請關注PHP中文網其他相關文章!