一个php cookie操作类,实现了基本的操作功能:
创建cookie、设置cookie的过期时间、注销cookie等。
代码:
<?php namespace comnet { /** * php cookie操作类 * by www.jb200.com */ class Cookie { /** * cookie名称 * @var string */ public $name; /** * cookie值 * @var string */ public $value; /** * cookie过期时间 * @var int */ public $expire; /** * cookie 保存路径 * @var string */ public $path; /** * cookie域 * @var string */ public $domain; /** * Indicates that the cookie should only be transmitted over a secure HTTPS connection from the client. * When set to TRUE, the cookie will only be set if a secure connection exists. * On the server-side, it's on the programmer to send this kind of cookie only on secure connection * (e.g. with respect to $_SERVER["HTTPS"]). * @var boolean */ public $secure; /** * When TRUE the cookie will be made accessible only through the HTTP protocol. * This means that the cookie won't be accessible by scripting languages, such as JavaScript. * This setting can effectively help to reduce identity theft through XSS attacks * (although it is not supported by all browsers). * Added in PHP 5.2.0. TRUE or FALSE * @var boolean */ public $httponly; /** * 创建cookie * * @param string $name The name of the cookie. * @param string $value [optional] The value of the cookie. * @param int $expire [optional] The time the cookie expires. * @param string $path [optional] The path on the server in which the cookie will be available on. * @param string $domain [optional] The domain that the cookie is available to. * @param boolean $secure [optional] Indicates that the cookie should only be transmitted over a secure HTTPS connection from the client. * @param boolean $httponly [optional] Indicates that the cookie will be made accessible only through the HTTP protocol */ public function __construct($name, $value = null, $expire = null, $path = null, $domain = null, $secure = null, $httponly = null){ if(($this->name = (string) $name)){ if(!is_null($value)){ $this->value = (string) $value; $this->expire = $expire; $this->path = $path; $this->domain = $domain; $this->secure = $secure; $this->httponly = $httponly; } else { $this->value = $this->exists() ? $_COOKIE[$this->name] : ''; } } else { throw new Exception("invalid cookie name"); } } /** * 检测cookie是否存在 * @return boolean */ public function exists(){ return isset($_COOKIE[$this->name]); } /** * 通过setcookie设置cookie信息 */ public function save(){ return setcookie($this->name, $this->value, $this->expire, $this->path, $this->domain, $this->secure, $this->httponly); } /** * 注销cookie */ public function delete(){ return setcookie($this->name, "", time() - 3600); } } } ?>