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

PHP Cookie 陣列建立、讀取與銷毀完整指南

     編輯:PHP 綜合知識

建立 Cookie 陣列

<?php
setcookie('ICNet[Reg]', 'This is reg cookie', time() + 3600);
setcookie('ICNet[Active]', 'This is login cookie.', time() + 3600);
// 瀏覽器端實際發送:ICNet[Reg]=...; ICNet[Active]=...
?>

讀取 $_COOKIE 陣列

<?php
print_r($_COOKIE);
/* 輸出範例:
Array(
    [ICNet] => Array(
        [Reg] => This is reg cookie
        [Active] => This is login cookie.
    )
    [PHPSESSID] => ...
)
*/

// 存取方式
echo $_COOKIE['ICNet']['Reg'];
echo $_COOKIE['ICNet']['Active'];

// 或先取出子陣列
$arr = $_COOKIE['ICNet'];
echo $arr['Reg'];
echo $arr['Active'];
?>

銷毀 Cookie 陣列

<?php
// 單獨刪除
setcookie('ICNet[Reg]', '', time() - 3600);
setcookie('ICNet[Active]', '', time() - 3600);

// 整組刪除(需逐鍵刪除,無單一指令刪除整組)
foreach ($_COOKIE['ICNet'] as $k => $v) {
    setcookie("ICNet[$k]", '', time() - 3600);
}
?>

注意事項

  • Cookie 總大小限制 4KB,陣列結構會增加開銷
  • 子鍵名稱建議英數字底線,避免特殊字元編碼問題
  • 安全性:敏感資料勿存 Cookie,改用 Session + 加密 Token
  • 設定 HttpOnly、Secure、SameSite=Lax 參數(PHP 7.3+ setcookie() 支援 options 陣列)

現代寫法(PHP 7.3+)

setcookie('ICNet[Reg]', 'value', [
    'expires' => time() + 3600,
    'path' => '/',
    'domain' => '',
    'secure' => true,      // 僅 HTTPS
    'httponly' => true,    // 阻止 JS 存取
    'samesite' => 'Lax',   // CSRF 防護
]);
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved