Session(会话)
原理
1、session是服务器端的技术
2、session是基于cookie技术的

session操作
1、默认情况下,会话不会自动开启,通过session_start()开启会话
2、通过session_id()获取会话的编号
3、通过$_SESSION操作会话
4、会话可以保存除了资源以外的所有类型。
5、重复开启会话会报错,一般出现在包含文件中。
<?php
session_start(); //开启会话
@session_start(); //重复开启会话会报错,可以通过错误抑制符来屏蔽错误
$_SESSION['name']='tom'; //保存会话
$_SESSION['age']=20;
echo $_SESSION['name'],'<br>';
echo $_SESSION['age'],'<br>';
echo '会话编号:'.session_id(); //获取会话编号
session_start()作用
1、没有会话空间就创建一个空间
2、有会话空间就打开空间
销毁会话
<?php
session_start();
session_destroy(); //销毁会话
垃圾回收
1、会话文件超过了生命周期是垃圾文件。
2、PHP自动进行垃圾回收
3、垃圾回收的概率默认是1/1000
在php.ini里配置:
session.gc_probability = 1
session.gc_divisor = 1000
session和cookie的区别

禁用cookie对session的影响
session是基于cookie的,如果禁用cookie,session无法使用。
解决:
默认情况下,session只依赖于cookie,session的编号只能通过cookie传输
可以设置为session不仅仅依赖于cookie
在php.ini中设置:
session.use_only_cookies = 0 // session不仅仅依赖于cookie
session.use_trans_sid = 1 //允许通过其他方式传递session_id
注:设置后,php自动添加get和post传递session_id
本文深入解析了Session的工作原理,包括其如何基于Cookie运作、如何在PHP中启动和操作会话、会话的保存机制以及如何销毁会话。同时,讨论了会话与Cookie的区别,以及在Cookie被禁用时如何配置PHP以支持会话。
5935

被折叠的 条评论
为什么被折叠?



