一、什么是COOKIE?
cookie存在客户端的一段小文本。网站为了辨别用户身份,进行SESSION追踪而存储在用户本地中断上的数据(通常会加密)
1.COOKIE的工作原理
描述:
用户第一次访问你的网站->服务器端会将用户信息设置为cookie(可以理解为制造饼干的过程)->通过http协议发送给用户(浏览器)->在客户端,cookie以文本形式保存下来。
用户第二次访问你的网站->在http协议的请求头中会携带者cookie信息->
服务器会对cookie进行验证-.第二次响应->猜你喜欢。
打开cookie文本文件:
C:\Users\Administrator\AppData\Roaming\Microsoft\Windows\Cookies
2.设置COOKIE
setcookie(value,path,name // cookie的名称
expire //过期时间,单位秒,当前时间戳加上秒数
time()+ 3600 有效时间1小时,
time() +604800,有效时间一周。
domain //有效域名,默认是当前域名,如:www.default.com
完整的设置cookie
3.关于COOKIE值的类型
1.字符串:
cookie 第二个参数(cookie的值)只能设置成字符串
3.数组形式:
设置形式 :setcookie(‘c1[k1]’,值);
4.读取COOKIE
使用超全局变量_COOKIE[‘username’];
5.删除COOKIE的方法
第一种 : setcookie(‘名’,’’) //将cookie值设置为空
第二种: setcookie(‘名’);//只传第一个参数,其他留空
第三种:setcookie(‘username’,’manyi’,time()-1);设置一下过期时间
6.实例:记录登录的用户名
展示用户登录页面showlogin.php:
执行登录 dologin.php
二、什么是SESSION?
1.SESSION的工作原理
2.开启SESSION会话功能
session_start(); 如果使用SESSION必须开启
作用:生成一个新的sessionid 号。
session_start() 只能一个页面开启一次。
3.获取当前的SESSION的ID值
4.获取当前的SESSION的cookie名称
session_name();
5.设置(创建,将**写入session)SESSION数据
可以将SESSION的值设置为字符串或者是数组
6.读取SESSION数据
_SESSION[‘userino’]
获取:
7.删除SESSION数据
1)Unset
删除SESSION变量
2)session_destroy();
3)如何彻底删除session?
a unset() 将变量删除
b session_destroy()删除当前的session文件
c 将session的cookie删除
setcookie(名,值,time()-999);
setcookie(session_name(),session_id(),time()-999);
8.实例:用户登录
展示用户登录
执行用户登录
用户登录后首页
用户退出
9.实例:模拟购物车
商品列表goodslist
2)将商品加入到购物车
3)购物车列表
4)从购物车列表中删除
10.SESSION的垃圾回收:
比如用户在非正常退出时,服务器生成的session文件会一直存在。时间一长会越来越多。php会将这部分文件按时间,按一定的比例进行删除。
SESSION的垃圾回收时间(session.gc_maxlifetime);
session.gc_maxlifetime = 1440 24分钟,文件如果超过24分钟没有被访问,即为垃圾文件。
回收的概率(session.gc_probability,session.gc_divisor)
session.gc_probability = 1
session.gc_divisor = 1000
三、SESSION相关配置
1.session.name
2.session.auto_start =0 不开启 1为自动开启(不建议)
3. session.cookie_lifetime = 0 //浏览器关闭,session会话结束。
4. session.cookie_path 指定了session会话cookie的有效路径
5.session.cookie_domain 指定了session会话cookie的有效域名
如果用ini_set()函数来改以上的配置文件。一定在session_start()之前才有效。