<?php
class CustomCookie{
static private $_instance = null;
private function __construct(array $option=[]){
$this->setOptions();
}
private function setOptions(array $option=[]){
}
/**
* 单例模式
* @param [array] $option Cookie相关选项
* $result object 对象实例
*/
public static function getInstance(array $option=[]){
if(is_null(self::$_instance)){
$class = __CLASS__;
self::$_instance = new $class($option);
}
return self::$_instance;
}
}
/* cooke操作:
1、设置:setcookie() 、 setrawcookie()
setcookie()参数: $name 指定cookie名字
$value Cookie的值
$expires 设置cookie过期时间,默认值为0,单位是秒数
path 设置cookie的有效路径,默认是当前目录和其子目录
domain 设置cookie的作用域 默认在本域下
secore 设置cookie只能通过HTTPS传输,默认值false
httponly 是否只能通过http访问cookie 默认是false 如果为true,那么客户端不能通过js操作这个cookie,可有效防止xss攻击
setrawcookie() 不会对值进行urlencodel编码
2、读取:$_COOKIE;
3、更新:更新和删除时要保持参数path和domain一致,否则将参数新的cookie
4、销毁:setcookie("username","",time()-1);
//内存cookie,浏览器关闭之后 cookie消失
通过header方式操作cookie
header("Set-Cookie: a=1");
header("Set-Cookie: b=2;expires=".gmdate('D, d M Y H:i:s \G\M\T',time()+3600));
cookie数组形式
setcookie("userInfo["username"],"king",strtotime('+7 days'));
setcookie("userInfo["age"],"13");
*/
/*
session
1、开启回话 session_start();
2、可以通过$_SESSION 来设置相关值,设置和读取都用这个全局变量
3、销毁session session_destory(); {
---1 将session清除 $_SESSION = [];
---2 将cookie中的session_id清除 setcookie();
--- session_destory();
例子:
<?php
session_start();
//将$_SESSION数据清空
$_SESSION = [];
//删除回话Cookie
if(ini_get('session.use_cookies')){
$param = session_get_cookie_param();
setcookie(session_name(),'',time()-1,param['path'],param['domain']);
}
session_destory();
}
*/
setcookie("name","lalaa",time()+10);
setcookie("age",19);
var_dump($_COOKIE['name']);