php回话控制 cookie

时间:2022-12-17 18:06:47

<?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']);