首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 網頁程式設計 >> PHP 程式設計 >> PHP 綜合知識

PHP 設定 Session Cookie(瀏覽器進程期限)正確寫法

     編輯:PHP 綜合知識

許多開發者誤以為 setcookie('name', 'value', time()+0) 即可建立「瀏覽器關閉即失效」的 Session Cookie,實際上這會導致 Cookie 立即過期。正確做法是將 expire 參數直接設為 0,並注意 domain 參數的設定。

錯誤示範

<?php
$USERID = "PHPer";
$CookieTime = 0;
setcookie("USERID", $USERID, time() + $CookieTime, "/", "pcpchina.com");
// 錯誤:expire = 當前時間戳 + 0 = 當前時間,Cookie 即刻過期
?>

正確寫法

<?php
$USERID = "PHPer";
setcookie("USERID", $USERID, 0, "/", ""); // expire=0 表示 Session Cookie
// domain 留空表示當前域名;若需支援子域名可設為 ".example.com"
?>

關鍵點解析

參數說明
expire = 0瀏覽器進程結束時自動刪除(Session Cookie)
expire > 0Unix 時間戳,指定絕對過期時間
domain留空 = 當前域名;.example.com = 含所有子域名
path建議設為 / 使全站有效

驗證方式

首次載入頁面不會輸出 $_COOKIE['USERID'],因為 Cookie 於下一次 HTTP 請求才會隨標頭送回伺服器。重新整理頁面後即可看到值。

補充:PHP 內建 Session 機制

若僅需伺服器端儲存狀態,建議直接使用 session_start() 搭配 $_SESSION 超全域變數,PHP 會自動管理 Session ID Cookie(預設即為 Session Cookie),更安全且方便。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved