如何理解php session运行机制

清浅
发布: 2019-02-14 17:42:14
原创
4274人浏览过

 

php session运行机制就是客户端将session id传入到服务器中,服务器再根据session id找到对应的文件并将其反序列化得到session值,然后保存的时候先序列化再写入

今天将要分享的知识点是PHP中的会话运行机制,对于熟悉PHP的开发者来说并不陌生,但是对于刚入门的来说就不是很理解了。接下来在文章中将为大家详细介绍PHP中的session运行机制,具有一定的参考作用,希望对大家有所帮助

如何理解php session运行机制

【推荐课程:PHP教程

立即学习PHP免费学习笔记(深入)”;

PHP session运行机制含义:

PHP session 运行机制就是客户端将session id传递到服务器,服务器根据session id找到对应的文件,读取的时候对文件内容进行反序列化就得到session的值,保存的时候先序列化再写入

PHP session机制分类

在PHP中session有两种机制,分别为默认机制和由用户自定义session处理机制。

默认机制

php.ini配置:

session.save_handler = files
登录后复制

是用磁盘文件来实现PHP会话,它有以下几部分组成:

session_start()

session_start()是session机制的开始,它具有一定概率开启垃圾回收。这个概率是根据php.ini的配置决定的,因为在有的系统中session.gc_probability = 0,即概率是0,这时就不具备垃圾回收

为$_session赋值

添加一个新值只会维持在内存中,当脚本执行结束的时候,把$_session的值写入到session_id指定的文件夹中,然后关闭相关资源。这个阶段有可能执行更改session_id的操作,比如销毁一个旧的session_id,生成一个全新的session_id。这一般用在自定义session操作

if (isset($_COOKIE[session_name()])) {
            setcookie(session_name(),'',time() -42000,'/');//旧session cookie过期
          }
          session_regenerate_id();//这一步会生成新的session_id
         //session_id()返回的是新的值
登录后复制

写入session操作

在脚本结束的时候会执行session写入操作,把$_session中的值写入到session_id命名的文件中,可能已经存在,可能需要创建新的文件。

 

销毁session

session发出去的cookie一般是即时cookie,保存在内存中,当浏览器关闭后,才会过期,但是如果只是想退出登录,而不是关闭浏览器,那么就需要在代码里销毁session,方法有很多。

例:

1. setcookie(session_name(),session_id(),time() -8000000,..);//退出登录前执行
2. usset($_SESSION);//这会删除所有的$_SESSION数据,刷新后,有COOKIE传过来,但是没有数据。
3. session_destroy();//这个作用更彻底,删除$_SESSION 删除session文件,和session_id
登录后复制

如何理解php session运行机制

用户自定义session处理机制

php.ini配置

session.save_handler = user
登录后复制

用户自定义处理机制可分为以下几部分

session_start()

执行open($save_path,$session_name)语句打开session操作句柄

执行read($id)从中读取数据

注意:$save_path在此情况下直接返回true

脚本执行结束

执行write($id,$sess_data)语句

销毁session

需要注意如果用户需要销毁session则要先执行destroy再执行第2步

如何理解php session运行机制

总结:以上就是本篇文章全部内容了,希望对大家有所帮助。

php中文网学习专题:php session (包含图文、视频、案例)

以上就是如何理解php session运行机制的详细内容,更多请关注php中文网其它相关文章!

PHP速学教程(入门到精通)
PHP速学教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号