PHP Session

本文深入解析了Session的工作原理,包括其如何基于Cookie运作、如何在PHP中启动和操作会话、会话的保存机制以及如何销毁会话。同时,讨论了会话与Cookie的区别,以及在Cookie被禁用时如何配置PHP以支持会话。

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值