Cookie 辅助函数
Cookie 辅助函数文件包含了帮助处理 cookie 的函数。
加载此辅助函数
使用以下代码加载此辅助函数:
<?php
helper('cookie');
可用函数
以下函数可用:
- set_cookie($name[, $value = ''[, $expire = ''[, $domain = ''[, $path = '/'[, $prefix = ''[, $secure = false[, $httpOnly = false[, $sameSite = '']]]]]]]])
- 参数
$name (
mixed
) – Cookie 名称 或 此函数可用的所有参数的关联数组$value (
string
) – Cookie 值$expire (
int
) – 到期秒数。如果设置为0
则 cookie 仅在浏览器打开时有效$domain (
string
) – Cookie 域名(通常:.yourdomain.com)$path (
string
) – Cookie 路径$prefix (
string
) – Cookie 名称前缀。如果为''
,则使用 app/Config/Cookie.php 中的默认值$secure (
bool
) – 是否仅通过 HTTPS 发送 cookie。如果为null
,则使用 app/Config/Cookie.php 中的默认值$httpOnly (
bool
) – 是否从 JavaScript 隐藏 cookie。如果为null
,则使用 app/Config/Cookie.php 中的默认值$sameSite (
string
) – SameSite cookie 参数的值。如果为null
,则使用 app/Config/Cookie.php 中的默认值
- 返回类型
void
备注
在 v4.2.7 之前,由于一个 bug,
$secure
和$httpOnly
的默认值是false
, 从不使用 app/Config/Cookie.php 中的值。该辅助函数为设置浏览器 cookie 提供了更友好的语法。有关其用法的描述,请参阅 Response 库,因为此函数是
CodeIgniter\HTTP\Response::setCookie()
的别名。
- get_cookie($index[, $xssClean = false[, $prefix = '']])
- 参数
$index (
string
) – Cookie 名称$xssClean (
bool
) – 是否对返回的值应用 XSS 过滤$prefix (
string|null
) – Cookie 名称前缀。如果设置为''
,将使用 app/Config/Cookie.php 中的默认值。如果设置为null
,则没有前缀
- 返回
cookie 值,如果未找到则为 null
- 返回类型
mixed
备注
从 v4.2.1 开始,引入了第三个参数
$prefix
,并且由于一个错误修复,行为发生了一些变化。详见 升级。该辅助函数为获取浏览器 cookie 提供了更友好的语法。有关其使用的详细描述,请参阅 IncomingRequest 库,因为此函数的作用与
IncomingRequest::getCookie()
非常相似,只是它还会在你可能在 app/Config/Cookie.php 文件中设置的Config\Cookie::$prefix
前加上前缀。警告
使用 XSS 过滤是一个不好的做法。它不能完美地防止 XSS 攻击。在视图中建议使用正确
$context
的esc()
。
- delete_cookie($name[, $domain = ''[, $path = '/'[, $prefix = '']]])
- 参数
$name (
string
) – Cookie 名称$domain (
string
) – Cookie 域名(通常:.yourdomain.com)$path (
string
) – Cookie 路径$prefix (
string
) – Cookie 前缀
- 返回类型
void
允许你删除一个 cookie。除非你设置了自定义路径或其他值,否则只需要 cookie 的名称。
<?php delete_cookie('name');
此函数与
set_cookie()
其他方面相同,只是它没有value
和expire
参数。备注
当你使用
set_cookie()
时,如果value
设置为空字符串且expire
设置为0
,则 cookie 将被删除。 如果value
设置为非空字符串且expire
设置为0
,则 cookie 仅在浏览器打开时有效。你可以在第一个参数中提交值数组,也可以设置离散参数。
<?php delete_cookie($name, $domain, $path, $prefix);
- has_cookie(string $name[, ?string $value = null[, string $prefix = '']])
- 参数
$name (
string
) – Cookie 名称$value (
string|null
) – Cookie 值$prefix (
string
) – Cookie 前缀
- 返回类型
bool
通过名称检查 cookie 是否存在。这是
Response::hasCookie()
的别名。