- PHP 菜鸟教程
- PHP - 教程
- PHP - 简介
- PHP - 安装
- PHP - 历史
- PHP - 功能
- PHP - 语法
- PHP - Hello World
- PHP - 注释
- PHP - 变量
- PHP - echo 语句和 print 语句
- PHP - var_dump() 函数
- PHP - $ 和 $$ 变量
- PHP - 常量
- PHP - 魔术常量
- PHP – 数据类型
- PHP - 类型转换
- PHP - 类型戏法
- PHP - 字符串
- PHP - 布尔值
- PHP - 整数
- PHP - 文件和I/O
- PHP – 数学函数
- PHP - Heredoc & Nowdoc
- PHP - 复合类型
- PHP - 文件包含
- PHP - 日期和时间
- PHP - 标量类型声明
- PHP - 返回类型声明
- PHP 运算符
- PHP - 运算符类型
- PHP - 算术运算符示例
- PHP - 比较运算符示例
- PHP - 逻辑运算符示例
- PHP - 赋值运算符示例
- PHP – 字符串运算符
- PHP – 数组运算符
- PHP – 条件运算符示例
- PHP - Spread 运算符
- PHP - Null 合并运算符
- PHP - Spaceship 运算符
- PHP 控制语句
- PHP – 决策
- PHP - If…Else 语句
- PHP - Switch 语句
- PHP – 循环类型
- PHP - For 循环
- PHP - Foreach 循环
- PHP - While 循环
- PHP - do...While 循环
- PHP - Break 语句
- PHP - Continue 语句
- PHP 数组
- PHP - 数组
- PHP - 索引数组
- PHP - 关联数组
- PHP - 多维数组
- PHP - 数组函数
- PHP - 常量数组
- PHP 函数
- PHP - 函数
- PHP - 函数参数
- PHP - 按值调用
- PHP - 按引用调用
- PHP - 默认参数
- PHP - 命名参数
- PHP - 变量参数
- PHP - 返回值
- PHP - 传递函数
- PHP - 递归函数
- PHP - 类型提示
- PHP - 变量范围
- PHP - 严格类型
- PHP - 匿名函数
- PHP - 箭头( Arrow )函数
- PHP - 变量处理函数
- PHP - 局部变量
- PHP - 全局变量
- PHP 超全局变量
- PHP - 超全局变量
- PHP - $GLOBALS 变量
- PHP - $_SERVER 变量
- PHP - $_REQUEST 变量
- PHP - $_POST 变量
- PHP - $_GET 变量
- PHP - $_FILES 变量
- PHP - $_ENV 变量
- PHP - $_COOKIE 变量
- PHP - $_SESSION 变量
- PHP 文件处理
- PHP - 文件处理
PHP - $_COOKIE 变量
PHP 超全局变量 $_COOKIE 以 cookie 的形式存储传递给当前 PHP 脚本的变量以及 HTTP 请求。$HTTP_COOKIE_VARS 也包含相同的信息,但它不是超全局变量,现在已被弃用。
什么是 Cookie?
Cookie 是由服务器存储在客户端计算机上的文本文件,保留它们用于跟踪目的。PHP 透明地支持 HTTP Cookie。Cookie 通常在 HTTP 标头中设置。JavaScript 还可以直接在浏览器上设置 Cookie。
服务器脚本将一组 Cookie 发送到浏览器。它将此信息存储在本地计算机上以备将来使用。下次,当浏览器向 Web 服务器发送任何请求时,它会将这些 Cookie 信息发送到服务器,服务器使用该信息来识别用户。
setcookie() 函数
PHP 提供了 setcookie 函数来创建一个 cookie 对象,该对象将与 HTTP 响应一起发送到客户端。
setcookie(name, value, expire, path, domain, security);
参数
- name - 存储的 Cookie 的名称。
- value − 设置命名变量的值。
- expire - 这指定了自 1970 年 1 月 1 日 00:00:00 GMT 以来的未来时间(以秒为单位)。
- path - Cookie 有效的目录。
- domain - 指定非常大的域中的域名。
- security − 1 表示 HTTPS。对于常规 HTTP,默认值为 0。
如何设置 Cookie
请看下面的例子。此脚本会设置一个名为 username 的 Cookie(如果尚未设置)。
例
<?php
if (isset($_COOKIE['username'])) {
echo "<h2>Cookie username already set: " . $_COOKIE['username'] . "</h2>";
} else {
setcookie("username", "Mohan Kumar");
echo "<h2>Cookie username is now set.</h2>";
}
?>
从 Apache 服务器的文档根目录运行此脚本。您应该会看到此消息作为输出 -
Cookie username is now set
如果重新执行此脚本,则 Cookie 现在已设置。
Cookie username already set: Mohan Kumar
例
在客户端的后续访问中检索 Cookie -
<?php
$arr=$_COOKIE;
foreach ($arr as $key=>$val);
echo "<h2>$key => $val </h2>";
?>
浏览器将显示以下输出 -
Username => Mohan Kumar
如何删除 Cookie
要删除 Cookie,请为 Cookie 设置已过期的日期,以便浏览器触发 Cookie 删除机制。
<?php
setcookie("username", "", time() - 3600);
echo "<h2>Cookie username is now removed</h2>";
?>
浏览器现在将显示以下输出 -
Cookie username is now removed
使用数组表示法设置 Cookie
您还可以通过在 cookie 名称中使用数组表示法来设置数组 cookie。
setcookie("user[three]", "Guest");
setcookie("user[two]", "user");
setcookie("user[one]", "admin");
如果 cookie 名称包含点 (.),则 PHP 会用下划线 (_) 替换它们。