首页 / PHP / PHP会话控制中session的使用
PHP会话控制中session的使用
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了PHP会话控制中session的使用,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2757字,纯文字阅读大概需要4分钟。
内容图文
![PHP会话控制中session的使用](/upload/InfoBanner/zyjiaocheng/605/affbef3c179a47a1b0b4bf6f1266ad86.jpg)
简单介绍
基本功能:
通过为每个独立用户分配唯一的会话 ID,可以实现针对不同用户分别存储数据的功能。 会话通常被用来在多个页面请求之间保存及共享信息。一般来说,会话 ID 通过 cookie 的方式发送到浏览器,并且在服务器端也是通过会话 ID 来取回会话中的数据。 如果请求中不包含会话ID 信息,那么 PHP 就会创建一个新的会话,并为新创建的会话分配新的 ID。【摘自官方文档】
简单来说其作用类似于cookies但是相比较cookies更加安全。cookies保存在用户的浏览器上,用户可以非常方便的更改,然而session保存在服务器,用户只会拿到一个ID(session_id)号因此用户不能直接修改session中保存的信息。
工作流程
当开始一个会话时,PHP 会尝试从请求中查找会话 ID (通常通过会话 cookie), 如果请求中不包含会话 ID 信息,PHP 就会创建一个新的会话。 会话开始之后,PHP 就会将会话中的数据设置到 $_SESSION 变量中。 当 PHP 停止的时候,它会自动读取 $_SESSION 中的内容,并将其进行序列化, 然后发送给会话保存管理器来进行保存。PHP 脚本执行完毕之后,会话会自动关闭。 同时,也可以通过调用函数 session_write_close() 来手动关闭会话。 【摘自官方文档】
①接受用户请求,并查询ID(session_id)。
②如果ID(session_id)存在,则开始会话;如果不存在则创建一个新会话,之后开启会话
③PHP从会话中获取相关数据经过反序列化后保存到$_SESSION
中。
④PHP结束前将$_SESSION
经序列化后提交给管理器。
⑤结束会话。
常见配置
session.save_handler : 修改默认会话保存机制(默认状态是以文件形式保存到某个路径下,可以修改session_set_save_handler来把session保存到数据库)
session.save_path:session文件的保存位置。如图:
session.auto_start : 会话自动开启,默认是0表示不开启,修改为1表示开启。PHP代码中可以调用session.start()手动开启。
session.name: session的名字,默认PHPSESSID
session.gc_maxlifetime: session的最长有效期,以ms为单位。如果超过这个时间sessio将自动删除。默认是1440(24分钟)
serialize_handler: 默认PHP,处理连续资料的方式,本功能只有WDDX模组或PHP内部使用【说人话就是用WDDX还是PHP格式来序列化得出session存储的字符串】注意如果这里的序列化方式是PHP那么就可能会出现反序列化漏洞因为php中serialize()的方式和其不同。详情请见=>【链接】
session.gc_probability = n: 以千分之n的概率回收(删除)session
其他:Session 上传进度
当一个上传在处理中,同时POST一个与INI中设置的session.upload_progress.name同名变量时,上传进度可以在$_SESSION
中获得。
当 session.upload_progress.enabled INI 选项开启时,PHP 能够在每一个文件上传时监测上传进度。
这个信息对上传请求自身并没有什么帮助,但在文件上传时应用可以发送一个POST请求到终端(例如通过XHR)来检查这个状态当一个上传在处理中,同时POST一个与INI中设置的session.upload_progress.name同名变量时,上传进度可以在
$_SESSION
中获得。
当PHP检测到这种POST请求时,它会在$_SESSION
中添加一组数据, 索引是session.upload_progress.prefix
与session.upload_progress.name
连接在一起的值key。
通常这些键值可以通过读取INI设置来获得
【PS:$SESSION
获得的是key与文件名连接而成的字符串】
利用session实现登陆后在页面之间的切换
一共设置了五个页面
login.html
内容总结
以上是互联网集市为您收集整理的PHP会话控制中session的使用全部内容,希望文章能够帮你解决PHP会话控制中session的使用所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。