php Cookie AND Session 笔记





cookie   AND  session 


当你浏览一个页面 页面发你一个cookie 浏览器会接受这个cookie 然后保存到你的磁盘上


cookie信息会以一个字符串的信息保存下来


setcookie('cookie名字',cookie内容,在客户端时间,路径,区域,安全cookie,true的话只能通过http访问)  保存cookie


setcookie('gwyy','gwyyabcd',time()+3600);


print_r($_COOKIE);


也可以用一个数组名来表示cookie名  但以后调用的话 都是数组名调用了 数组里面不要加引号
setcookie("lt[one]",'aaaa');
echo  $_COOKIE['lt']['one'];


cookie在文件里会给你要弄个 url码把中文给存储起来


删除cookie
setcookie('lt','',time()-3600);
批量删除cookie 用foreach  如果把cookie删除了 cookie存放的文件自然也删除了 


cookie  获取上次登陆时间 用数据库的话 就是 做2个字段 一个这次 一个上次  这次登陆  把最新登陆 写入当前时间 把以前的最新登陆的时间更新到上次登陆时间去


if($_COOKIE['last']) {
   echo $_COOKIE['last'];
   setcookie('last',date("Y-m-d H:i:s"),time()+3600);


} else {
     setcookie('last',date("Y-m-d H:i:s"),time()+3600);  
}


如果cookie没有设置 时间那么将不会被保存到cookie的文件里面!




Session =================
session 比 cookie的好处
1.安全高
2.cookie每次传输都要占带宽   session是保存在服务器的 不用占带宽


用session 首先要初始化 session
session_start();


session  保存格式  key<==>value


session  可以保存所有的基本类型 字符串 对象 数组 布尔  数字
key  string类型  8个长度   value
gwyy|s:8:"mygwyy";


不光能保存对象的实体  也能保存对象的返回值
$a = new Dog('aaa','134');


$_SESSION['name'] = $a->getName();


把对象实例存到session里面类型会缺损 要重新定义一下


如果没有开启session_start session会保存在内存里面  并不会建立文件夹


每个浏览器都是一个会话  


session  默认 1440秒 24分钟  就失效了   但是 session 有个发呆时间 哈哈哈 


删除 session
unset($_SESSION[key]);


删除当前浏览器对于的session文件
session_destroy()


自动打开session  不推荐
php.ini  里面 可以设置 session.auto_start = 1;


每个文件 由cookie携带的session_id  来获取session




session   可以跨浏览器 访问  
A浏览器  设置session  访问a页面   会用cookie携带session访问  
b浏览器  访问a页面  会由A页面找到 对应会话的session 并返回给b浏览器




如果禁用了cookie  session 就不能再一个会话里面共用一个session文件了 
禁用了cookie  浏览器就不会接受cookie  就无法用cookie携带session_id了 所以 每次刷新 就会从新创建一个session文件


1. 如果用户禁用了cookie 那么怎么用session呢


可以这样  每个页面 get 传参一个session_id  然后判断 


if(isset($_GET['SESSIONID'])) {
    session_id($_GET['SESSIONID']);
}
session_start();




2 还有一种方法  php.ini启用  session.use_trans_sid


然后用SID 常量保存
SID 常量   SESSIONID=sjldifsgjisw45




php.ini里面 可以改变session的名字 默认是 SESSIONID


session.name = PHPSESSIONID


给每个url 启用 SID 
session.use_trans_sid


session的路径
session.save_path


控制session文件时间
session.gc_maxlifetime = 1400
下面两个是session的垃圾回收机制  在session_start的时候有千分之一的几率调用这个垃圾回收机制 如果网站规模越大 
建议概率也设置的越小
session.gc_probabillty = 1;
session.gc_divisor= 1000


是否启用cookie
session.use_cookie = 1


cookie的生命周期
session.cookie_lifetime = 0   




session的各种操作 都可以通过  
首先在phpini中改 
session.save_handler = files  改成 user   就是 用户来接手


session_set_save_handler (打开,关闭,读取,写入,删除,gc(垃圾回收))


cookie 和 session 大致分为3中不同


1  cookie  在客户端  session在服务器


2  cookie不安全  session 安全


3  cookie 通过网络在客户端与服务器交互   session 保存在服务端 不需要传输















评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值