Cookie 是一种存储在用户浏览器上的小型数据片段,它可以被服务器读取和设置。PHP 提供了 setcookie()
和 $_COOKIE
超全局变量来处理 Cookie。
以下是一个简单的 PHP Cookie 操作类示例:
class CookieManager {
/**
* 设置 Cookie
* @param string $name Cookie 名称
* @param string $value Cookie 值
* @param int $expire 过期时间(秒)
* @param string $path 路径
* @param string $domain 域名
* @param bool $secure 是否仅通过 HTTPS 传输
* @param bool $httponly 是否仅允许 HTTP 访问
*/
public static function setCookie($name, $value, $expire = 0, $path = '/', $domain = '', $secure = false, $httponly = false) {
if (setcookie($name, $value, $expire, $path, $domain, $secure, $httponly)) {
return true;
} else {
return false;
}
}
/**
* 获取 Cookie
* @param string $name Cookie 名称
* @return mixed Cookie 值或 null
*/
public static function getCookie($name) {
return isset($_COOKIE[$name]) ? $_COOKIE[$name] : null;
}
/**
* 删除 Cookie
* @param string $name Cookie 名称
* @param string $path 路径
* @param string $domain 域名
* @return bool
*/
public static function deleteCookie($name, $path = '/', $domain = '') {
if (isset($_COOKIE[$name])) {
setcookie($name, '', time() - 3600, $path, $domain);
unset($_COOKIE[$name]);
return true;
} else {
return false;
}
}
}
// 使用示例
CookieManager::setCookie('username', 'JohnDoe', time() + 3600);
echo CookieManager::getCookie('username'); // 输出: JohnDoe
CookieManager::deleteCookie('username');
echo CookieManager::getCookie('username'); // 输出: null
setcookie()
函数在输出任何内容之前调用。setcookie()
函数中的过期时间参数是否正确设置。通过以上方法,可以有效地管理和操作 PHP 中的 Cookie。
领取专属 10元无门槛券
手把手带您无忧上云