欢迎大家来到IT世界,在知识的湖畔探索吧!
1.session的作用?
实现跨脚本共享数据,用户登录验证
2.session机制
建立在cookie之上,sessionID是保存在cookie中,session本身是指将数据保存到文件,然后在其他脚本中从文件中读取数据。
通过sessionID来识别不同的文件。
1)将变量内容保存到文件中,只要开启session在脚本结束时,系统会自动处理
2)通过sessionID从文件中获取对应的内容,放到$_SESSION
3.效率
当session文件增加之后,会导致操作系统查找session文件的效率变低。可以通过session分层来实现相对高效率的查找。
项目上session的使用:将session保存到内存中(非关系型数据库中:效率高,而且能够过期自动清除)
session存放到关系型数据库:mysql
session执行原理:PHP提供了一套session运行的系统,系统中提供了一系列的函数或者方法来逐个实现功能。
要实现session入库,其实只要修改session系统中的读和写方法,在读的时候不再从文件中去找,而是 去指定的数据库表中查找数据,写的时候不再写入文件,而是写入到数据库表中。
session_set_save_handler():将自定义的session函数写入到session系统中(替换原有的对应的session函数的功能)
bool session_set_save_handler ( callable $open , callable $close , callable $read , callable $write , callable $destroy , callable $gc )
$open:开启函数,用来初始换连接信息
$close:关闭函数,释放连接资源
$read:读取函数,从数据库读取内容
$write:写入函数,将数据写入到数据库
$destroy:销毁函数,把数据从数据库删除
$gc:垃圾回收函数,将过期的session数据删除掉
如果希望修改后的session函数执行,需要告知session系统,session被启用。
session_start():通知session系统,脚本需要执行session
效果
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://itzsg.com/48591.html