本文目录导读:

在PHP项目中,Cookie的作用域主要通过以下参数控制:
基本设置方法
使用 setcookie() 函数
setcookie(
'name', // Cookie名称
'value', // Cookie值
[
'path' => '/', // 作用路径
'domain' => '.example.com', // 作用域名
'samesite' => 'Lax', // SameSite属性
'httponly' => true,
'secure' => true,
]
);
作用域关键参数
domain - 域名作用域
// 只在当前域名生效
setcookie('test', 'value', ['domain' => 'example.com']);
// 所有子域名生效 (开头加点)
setcookie('test', 'value', ['domain' => '.example.com']);
// 对 www.example.com, blog.example.com 等都生效
path - 路径作用域
// 全站有效
setcookie('test', 'value', ['path' => '/']);
// 仅admin目录下有效
setcookie('test', 'value', ['path' => '/admin/']);
// 仅特定页面
setcookie('test', 'value', ['path' => '/user/profile']);
实际应用示例
多子域共享Cookie
// 登录站点设置
setcookie('session_id', $token, [
'domain' => '.example.com', // 所有子域共享
'path' => '/',
'expires' => time() + 86400,
'httponly' => true,
'secure' => true,
'samesite' => 'Lax'
]);
分权限Cookie作用域
// 用户通用Cookie
setcookie('user_lang', 'zh-CN', [
'domain' => '.example.com',
'path' => '/'
]);
// 管理员专用Cookie
setcookie('admin_token', $token, [
'domain' => 'admin.example.com',
'path' => '/admin/'
]);
安全和限制建议
安全配置
// 生产环境推荐配置
function setSecureCookie($name, $value, $expire = 0) {
$params = [
'expires' => $expire,
'path' => '/',
'domain' => '', // 不设置则仅当前域名
'secure' => isset($_SERVER['HTTPS']),
'httponly' => true,
'samesite' => 'Strict'
];
setcookie($name, $value, $params);
}
注意事项
- 域名限制:不能跨主域名设置(如不能从 example.com 设置到 test.com)
- 路径继承:子路径可以访问父路径的Cookie,反之不行
- 安全优先级:
SameSite=Strict>SameSite=Lax> 不设置Secure:仅HTTPS传输HttpOnly:禁止JavaScript访问
调试检测
// 查看当前Cookie作用域 echo '<pre>'; print_r($_COOKIE); echo '</pre>'; // 检查Cookie是否发送 echo '<pre>'; print_r(get_headers($_SERVER['HTTP_HOST']) ?? []); echo '</pre>';
常见问题解决
子域名无法共享Cookie
// 错误:使用完整域名
setcookie('key', 'value', ['domain' => 'www.example.com']); // 仅www子域
// 正确:使用点前缀
setcookie('key', 'value', ['domain' => '.example.com']); // 所有子域
路径不生效
// 确保路径以/
setcookie('key', 'value', ['path' => '/admin']); // 错误
setcookie('key', 'value', ['path' => '/admin/']); // 正确
总结建议
- 通用Cookie:
path: /, domain: .example.com - 敏感Cookie:加
HttpOnly, Secure, SameSite=Strict - 部分页面:限制
path到具体目录 - 避免跨域:不同主域需要不同方法(如OAuth)
版权声明:NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
足球直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播
英超直播