PHP如何操作Cookie?
Cookie是存储在客户端计算机上的文本文件,它们保留用于跟踪目的。PHP透明地支持HTTP cookie。
识别回归用户涉及三个步骤
● 服务器脚本将一组cookie发送到浏览器。例如年龄等。
● 浏览器将此信息存储在本地计算机上以供将来使用
● 当下次浏览器向Web服务器发送任何请求时,它会将这些cookie信息发送到服务器,服务器使用该信息来识别用户。
本章将教您如何设置cookie,如何访问它们以及如何删除它们。
Cookie的剖析
Cookie通常设置在HTTP标头中(尽管JavaScript也可以直接在浏览器上设置cookie)。设置cookie的PHP脚本可能会发送看起来像这样的标题(浏览器F12,network(网络)可以看到)
HTTP/1.1 200 OK Date: Fri, 04 Feb 2000 21:03:38 GMT Server: Apache/1.3.9 (UNIX) PHP/4.0b3 Set-Cookie: name=xyz; expires=Friday, 04-Feb-07 22:03:38 GMT; path=/; domain=jc2182.com Connection: close Content-Type: text/html
如您所见,Set-Cookie标头包含名称值对,GMT日期,路径和域。名称和值将进行URL编码。expires字段是浏览器在给定时间和日期之后删除cookie的指令。如果浏览器配置为存储cookie,则会将此信息保留到有效期。如果用户将浏览器指向与cookie的路径和域匹配的任何页面,它会将cookie重新发送到服务器。浏览器的标题可能如下所示
GET / HTTP/1.0 Connection: Keep-Alive User-Agent: Mozilla/4.6 (X11; I; Linux 2.2.6-15apmac ppc) Host: zink.demon.co.uk:1126 Accept: image/gif, */* Accept-Encoding: gzip Accept-Language: en Accept-Charset: iso-8859-1,*,utf-8 Cookie: name=xyz
然后,PHP脚本可以访问环境变量$_COOKIE,其中包含所有cookie名称和值。
用PHP设置Cookies
PHP提供了setcookie()函数来设置cookie。此函数最多需要六个参数,应在标记之前调用。对于设置每一个cookie,必须单独调用此函数。
setcookie(name, value, expire, path, domain, security);
这是所有参数的细节
● name - 设置cookie的名称。
● value - 设置命名变量的值,并且是您实际要存储的内容。
● expire - 这指定自1970年1月1日格林尼治标准时间00:00:00以来的未来时间(以秒为单位)。在此之后,cookie将无法访问。如果未设置此参数,则在Web浏览器关闭时cookie将自动过期。
● path - 指定cookie有效的目录。单个正斜杠字符允许cookie对所有目录有效。
● domain - 这可用于在非常大的域中指定域名,并且必须至少包含两个有效期。所有cookie仅对创建它们的主机和域有效。
● security - 可以设置为1以指定cookie应仅通过使用HTTPS的安全传输发送,否则设置为0,这意味着cookie可以通过常规HTTP发送。
以下示例将创建两个cookie 名称和年龄,这些cookie将在一小时后过期。
<?php setcookie("name", "John Watkin", time()+3600, "/","", 0); setcookie("age", "36", time()+3600, "/", "", 0); ?> <html> <head> <title>用PHP设置Cookies</title> </head> <body> <?php echo "设置 Cookies"?> </body> </html>
提示:time()函数返回的是当前的时间戳,也就是1970年1月一日0点0分0秒到脚本执行的那一刻的秒数。
打开浏览器访问脚本,然后按F12打开开发者模式,选择Network(网络)选项卡,选择Headers,可以看到如下图所示:
使用PHP访问Cookie
PHP提供了许多访问cookie的方法。最简单的方法是使用$_COOKIE变量。以下示例将访问上面示例中设置的所有cookie。
<html> <head> <title>用PHP访问cookie</title> </head> <body> <?php echo $_COOKIE["name"]. "<br />"; echo $_COOKIE["age"] . "<br />"; ?> </body> </html>
您可以使用isset()函数来检查是否设置了cookie。如果设置了再进行输出。
<html> <head> <title>用PHP访问cookie</title> </head> <body> <?php if(isset($_COOKIE["name"])) echo $_COOKIE["name"]. "<br />"; if(isset($_COOKIE["age"])) echo $_COOKIE["age"] . "<br />"; ?> </body> </html>
用PHP删除Cookie
正式地说,要删除一个cookie,你应该只使用name参数调用setcookie()[也就是说想删除那个name,把他设置成空],但这并不总是有效,不应该依赖。最安全的做法是设置一个已经过期的日期
/ 设置过去时间为当前时间的之前的60秒 /
<?php /* 设置过去时间为当前时间的之前的60秒 */ setcookie( "name", "", time()- 60, "/","", 0); setcookie( "age", "", time()- 60, "/","", 0); ?> <html> <head> <title>用PHP删除cookie</title> </head> <body> <?php echo "删除cookie" ?> </body> </html>
推荐学习:PHP教程
以上是PHP如何操作Cookie?的详细内容。更多信息请关注PHP中文网其他相关文章!

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

热门话题

PHP 8.4 带来了多项新功能、安全性改进和性能改进,同时弃用和删除了大量功能。 本指南介绍了如何在 Ubuntu、Debian 或其衍生版本上安装 PHP 8.4 或升级到 PHP 8.4

Visual Studio Code,也称为 VS Code,是一个免费的源代码编辑器 - 或集成开发环境 (IDE) - 可用于所有主要操作系统。 VS Code 拥有针对多种编程语言的大量扩展,可以轻松编写

如果您是一位经验丰富的 PHP 开发人员,您可能会感觉您已经在那里并且已经完成了。您已经开发了大量的应用程序,调试了数百万行代码,并调整了一堆脚本来实现操作

本教程演示了如何使用PHP有效地处理XML文档。 XML(可扩展的标记语言)是一种用于人类可读性和机器解析的多功能文本标记语言。它通常用于数据存储

JWT是一种基于JSON的开放标准,用于在各方之间安全地传输信息,主要用于身份验证和信息交换。1.JWT由Header、Payload和Signature三部分组成。2.JWT的工作原理包括生成JWT、验证JWT和解析Payload三个步骤。3.在PHP中使用JWT进行身份验证时,可以生成和验证JWT,并在高级用法中包含用户角色和权限信息。4.常见错误包括签名验证失败、令牌过期和Payload过大,调试技巧包括使用调试工具和日志记录。5.性能优化和最佳实践包括使用合适的签名算法、合理设置有效期、

字符串是由字符组成的序列,包括字母、数字和符号。本教程将学习如何使用不同的方法在PHP中计算给定字符串中元音的数量。英语中的元音是a、e、i、o、u,它们可以是大写或小写。 什么是元音? 元音是代表特定语音的字母字符。英语中共有五个元音,包括大写和小写: a, e, i, o, u 示例 1 输入:字符串 = "Tutorialspoint" 输出:6 解释 字符串 "Tutorialspoint" 中的元音是 u、o、i、a、o、i。总共有 6 个元

静态绑定(static::)在PHP中实现晚期静态绑定(LSB),允许在静态上下文中引用调用类而非定义类。1)解析过程在运行时进行,2)在继承关系中向上查找调用类,3)可能带来性能开销。

PHP的魔法方法有哪些?PHP的魔法方法包括:1.\_\_construct,用于初始化对象;2.\_\_destruct,用于清理资源;3.\_\_call,处理不存在的方法调用;4.\_\_get,实现动态属性访问;5.\_\_set,实现动态属性设置。这些方法在特定情况下自动调用,提升代码的灵活性和效率。
