🎬 HoRain 云小助手个人主页

⛺️生活的理想,就是为了理想的生活!


⛳️ 推荐

前些天发现了一个超棒的服务器购买网站,性价比超高,大内存超划算!忍不住分享一下给大家。点击跳转到网站。

目录

⛳️ 推荐

一、Cookie 是什么?

二、设置 Cookie(setcookie)

✅ 基本用法

✅ 带有效期(秒)

✅ 完整参数

三、读取 Cookie

四、删除 Cookie

五、Cookie 数组

六、Cookie 常见属性(⭐重点)

七、Cookie 的限制 ⚠️

八、Cookie vs Session(必会)

九、实战示例:记住登录状态

十、常见坑 ⚠️

十一、一句话总结


PHP 中的 Cookie 是一种客户端存储机制,常用于登录状态、用户偏好、购物车等场景。下面我用「原理 + 用法 + 安全」给你一套标准实战方案​ ✅


一、Cookie 是什么?

Cookie = 服务器发给浏览器的“小纸条”

浏览器每次请求会自动携带

浏览器 ← Cookie → 服务器

⚠️ Cookie 存储在客户端


二、设置 Cookie(setcookie)

✅ 基本用法

setcookie("username", "Tom");

⚠️ 必须在任何 HTML 输出之前调用


✅ 带有效期(秒)

setcookie("username", "Tom", time() + 3600); // 1 小时

✅ 完整参数

setcookie(
    "username",       // 名称
    "Tom",            // 值
    time() + 86400,   // 过期时间
    "/",              // 路径
    "",               // 域名
    false,            // HTTPS only
    true              // HttpOnly
);

三、读取 Cookie

echo $_COOKIE['username'];

✅ 判断是否存在:

if (isset($_COOKIE['username'])) {
    echo $_COOKIE['username'];
}

四、删除 Cookie

通过设置过期时间为过去

setcookie("username", "", time() - 3600);

⚠️ 路径 / 域名必须一致


五、Cookie 数组

setcookie("user[name]", "Tom");
setcookie("user[age]", 18);

读取:

echo $_COOKIE['user']['name'];

六、Cookie 常见属性(⭐重点)

属性

作用

expire

过期时间

path

生效路径

domain

生效域名

secure

仅 HTTPS

httponly

JS 无法访问(防 XSS)

samesite

防 CSRF

安全推荐写法

setcookie("token", $token, [
    'expires' => time() + 3600,
    'path' => '/',
    'secure' => true,
    'httponly' => true,
    'samesite' => 'Strict'
]);

七、Cookie 的限制 ⚠️

限制

说明

大小

≈ 4KB

数量

≈ 20~50 / 域名

明文

不安全

可被禁用

不稳定

不要存密码、敏感信息


八、Cookie vs Session(必会)

对比

Cookie

Session

存储位置

客户端

服务器

安全性

大小

性能

稍慢

最佳实践

Cookie 存 session_id

Session 存真实数据


九、实战示例:记住登录状态

if ($loginSuccess) {
    setcookie("user", $username, time() + 7 * 86400, "/");
}

下次访问:

if (isset($_COOKIE['user'])) {
    echo "欢迎回来," . $_COOKIE['user'];
}

十、常见坑 ⚠️

问题

原因

Cookie 不生效

输出前有 HTML

删不掉

路径不一致

中文乱码

未 urlencode

不安全

没开 HttpOnly

✅ 中文处理:

setcookie("name", urlencode("张三"));
echo urldecode($_COOKIE['name']);

十一、一句话总结

Cookie = 客户端小数据 + 自动携带 + 必须安全


如果你愿意,我可以继续帮你:

Cookie + Session 登录系统

JWT vs Cookie 对比

Laravel / ThinkPHP Cookie 用法

XSS / CSRF 防御实战

你现在做的是 登录 / 电商 / API / 后台系统?我可以按场景讲 😊

❤️❤️❤️本人水平有限,如有纰漏,欢迎各位大佬评论批评指正!😄😄😄

💘💘💘如果觉得这篇文对你有帮助的话,也请给个点赞、收藏下吧,非常感谢!👍 👍 👍

🔥🔥🔥Stay Hungry Stay Foolish 道阻且长,行则将至,让我们一起加油吧!🌙🌙🌙

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐