当前位置: 首页 > backend >正文

PHP-Cookie

Cookie 是什么?

cookie 常用于识别用户。cookie 是一种服务器留在用户计算机上的小文件。每当同一台计算机通过浏览器请求页面时,这台计算机将会发送 cookie。通过 PHP,您能够创建并取回 cookie 的值。

设置Cookie

在PHP中,你可以使用 setcookie() 函数来设置一个Cookie。这个函数必须在任何HTML输出之前调用,因为HTTP头(包括设置Cookie的头)必须在发送任何实际内容之前发送。

<?php
setcookie("user", "John Doe", time() + (86400 * 7)); // 86400 = 1天

上面的代码设置了一个名为 "user" 的Cookie,值为 "John Doe",并且这个Cookie将在7天后过期。time() + (86400 * 7) 计算了7天后的时间戳

读取Cookie

一旦设置了Cookie,你就可以通过全局数组 $_COOKIE 来访问它。

<?php
setcookie("user", "John Doe", time() + (86400 * 7)); // 86400 = 1天
if(isset($_COOKIE["user"])) {echo "User is " . $_COOKIE["user"];} else {echo "User is not set.";}

输出结果:

删除Cookie

要删除一个Cookie,你可以通过设置它的过期时间为过去的一个时间点来实现。注意,删除Cookie时,你必须设置与创建Cookie时相同的路径和域。

<?php
setcookie("user", "John Doe", time() + (86400 * 7)); // 86400 = 1天if(isset($_COOKIE["user"])) {echo "User is " . $_COOKIE["user"];} else {echo "User is not set.";}// 设置Cookie的过期时间为过去的时间
setcookie("user", "", time() - 3600);

然而,仅仅设置过期时间可能不足以删除所有Cookie,特别是如果它们有特定的路径或域设置。为了确保删除,你应该尽量使用与创建时相同的参数来调用 setcookie()。

Cookie的属性

setcookie() 函数还支持其他几个参数,允许你设置Cookie的路径、域、安全性(HTTPS)和HTTPOnly属性。

setcookie("TestCookie", $value, time() + 3600, "/path/", "example.com", true, true);

  1. 路径(/path/):Cookie有效的服务器上的路径。
  2. 域(example.com):Cookie有效的域。
  3. 安全性(true):如果设置为 true,则Cookie只能通过HTTPS发送。
  4. HTTPOnly(true):如果设置为 true,则Cookie不能通过客户端脚本访问(例如JavaScript)。这增加了安全性,因为它防止了跨站脚本(XSS)攻击中Cookie的窃取。

注意事项

  1. Cookie的大小限制通常是4KB。
  2. 浏览器对同一域名下的Cookie数量有限制(通常是20个)。
  3. Cookie是存储在客户端的,因此它们可以被用户查看和修改。不要依赖Cookie来存储敏感信息。
  4. 对于需要更高安全性的数据,应该考虑使用HTTPS和会话(Session)机制。

http://www.xdnf.cn/news/3512.html

相关文章:

  • Python10天突击--编译过程通常涉及几个关键步骤
  • 贪心算法精解(Java实现):从理论到实战
  • 博客打卡-人类基因序列功能问题动态规划
  • cv::remap() 和 cv::undistortion() 的区别
  • allure测试报告的应用
  • 「Mac畅玩AIGC与多模态11」开发篇07 - 使用自定义名言插件开发智能体应用
  • L3-040 人生就像一场旅行
  • stm32基础001(串口)
  • Astral Ascent 星界战士(星座上升) [DLC 解锁] [Steam] [Windows SteamOS macOS]
  • Linux架构篇、第1章_02源码编译安装Apache HTTP Server 最新稳定版本是 2.4.62
  • Windows11 管理员用户下无权限操作的解决方法
  • 基于BERT类的MRPC语义相似度检测(从0到-1系列)
  • 一键解放双手,操作丝滑起飞!
  • 21.1Linux中的LCD驱动实验(知识)_csdn
  • Flowable7.x学习笔记(十六)分页查询我的待办
  • [SystemVerilog] Arrays
  • JGQ516Ⅱ数据采集湿法袋式除尘器实验装置
  • DRV8301 三相电机驱动芯片的硬件参数与应用设计
  • 【AI论文】ReasonIR:为推理任务训练检索器
  • HarmonyOS应用开发中实现本地化存储的几种方式
  • 接口幂等性保证:技术方案与实践指南
  • Three.js + React 实战系列-3D 个人主页:构建 About 组件 (响应式 + 互动 + 动效)✨
  • 【Shell 脚本编程】详细指南:第四章 - 循环结构(for、while、until) 深度解析
  • Java 基础--数组(Array):存储数据的“排排坐”
  • 青蛙Todo:高效管理日程,提升工作学习效率
  • L39.【LeetCode题解】面试题 01.07. 旋转矩阵(四种方法)
  • 鸿蒙开发:如何解决软键盘弹出后的间距
  • [免费]SpringBoot+Vue非物质文化网站系统【论文+源码+SQL脚本】
  • 2025五一杯数学建模竞赛B题 矿山数据处理 保姆级教程讲解|模型讲解
  • Spring AI开发跃迁指南(第二章:急速上手3——Advisor核心原理、源码讲解及使用实例)