php session 和cookie
先简单的说明下session和cookie的区别。
1.session存放在服务器的文件中,或者是内存中。而cookie存在客服端。
2.session比cookie安全
3.session存放在服务器端,减少了客服端和服务器端之间的来回传输
4.session的生命周期是发呆时间,即当用户访问使用session,重新计算。cookie的周期是一定的,到时间会自己销毁
cookie
cookie
Cookie 是客户端技术,服务器把每个用户的数据以cookie的形式写给各自的浏览器
默认的cookie文件目录 C:\Documents and Settings\Administrator\cookie文件夹下
创建cookie的方法

setcookie("name","value","time");//name指的是cookie的名称。value指的是cookie的值,time指的是生命周期
获取cookie的值
1 2 3 | $_COOKIE [ 'name' ] //name 指的是cookie名字 //cookie的清除 setcookie( "name" , "" , "time" ) //设置生命周期小于当前时间即可。 |
session
Session 是一个服务器端技术,利用这个技术,为某个用户的浏览器创建一个独享的session文件
由于session为用户浏览器 独享。
一个会话对应一个session文件
Session的默认文件路径 c:/windows/temp/
可以通过session_save_path更改
1 2 3 4 5 6 7 | //创建session session_start(); $_SESSION [ 'name' ]=value; // //session的删除 unset( $_SESSION []); |
SESSION保存的数据格式
name|s:4:"TEST";
name就是key值
s 表示数据类型
4 表示数据的大小
Session 可以保存所有的基本数据类型(dobule int object array string等)
要使用session时,要初始化 session_start()
session_destroy();//会把对应的session文件删掉
Session的细节讨论
Session数据默认存放的时间是1440s从php.in 可以配置的
session.gc_maxlifetime = 1440这个时间是在1440内没有使用session文件,该session才会被视为垃圾。从而被回收,
Session存放路径
;session.save_path = "/tmp"
Session 和cookie的区别
存放的地方不一样
在使用session的时候要使用session_start();
在php.in session,auto_start=1会在某个页面添加session_start
如果客户主机禁止了cookie 怎么实现session技术共享多个页面
在每个链接的添加一个PHPSESSID同时 在每个页面加入
If(isset($_GET[PHPSESSIONID])){
Session_id()
}
Session_star();
(2)使用常量SID
(3)使用启用是否透明的sid支持。即可,这样设置,
session.use_trans_sid = 1
①Session.name 用于设置设置session的名字
可以通过session_name()获取
默认配置的
session.name = PHPSESSID
②session.use_trans_sid = 0 如果启用
说明会给每个url加上一个PHPSESSID
③session_sava_path
配置网站的session文件路径
④
session.gc_probability = 1
session.gc_divisor = 100
session.gc_maxlifetime = 1440 最大的生命周期 是发呆时间。
垃圾回收机制 会删除千分之一的几率
session.gc_probability /session.gc_divisor
上面三个配置共同作用。
⑤session.cookie_lifetime = 0
cookie 的生命周期默认是0 表示关闭浏览器就消失、
自定义会话处理器
在php.in设置一下
Session.save.handler();
session.save_handler = files/user/
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现