session入库

        session是存储在服务器端,默认采用的是文件的方式来存储,因session是要时时刻刻的使用的,若有大量的用户则就要创建很多session文件,就会占用很大的物理内存,对整个的服务器带来性能问题而且不方面管理,这时我们可以把session存放到数据库中。


       session入库可以解决哪些问题?

            1、可以解决跨域操作

            2、可以实现单点登陆

            3、可以统计在线人数

            4、可以实现同一时只允许一个用户在线


       实现session入库:

            1、修改session.save_handler的值为user(默认的为file)

                 

             2、定义session_set_save_handler的参数(6个参数,也就是6个方法,执行顺序是开读写关)

                 

             3、具体的方法实现

                  

               

           

            4、方法描述

回调函数

描述

open()

在运行session_start()时执行,该函数的声明需要两个参数,系统会自动的将PHP.inisession.save_path选项值传递给第一个参数,将session名自动的传递到第二个参数中,返回true则继续往下执行

close()

该函数不需要参数,在脚本执行完成或调用session_write_close(),session_destroy()时被执行,即在所有session操作完成后被执行,如果不需要处理直接返回true

read()

在运行session_start()时执行,因为在开启会话时,会去read当前的session数据并且写入$_SESSION变量。需要声明一个参数,系统会自动的将SessionId传递给该函数,用于通过sessionId获取对应的用户数据,返回当前的用户数据写入$_SESSION数据

write()

该函数在脚本结束和对$_SESSION变量赋值时执行,需要声明两个参数,分别是sessionid和串行化后session信息字符串,在对$_SESSION变量赋值时,就可以通过Sessionid找到存储位置,并且将信息写入,存储成功可以返回true继续向下执行

 

destroy()

在运行session_destroy时执行,需要声明一个参数,系统会自动将sessionId传递给该函数,去除对应的回话信息

gc()

垃圾回收程序启动时执行。需要声明一个参数,系统自动将php.ini

session.gc_maxlifetime选项的值传递给该函数,用户删除超过这个时间的session信息,返回true可以继续向下



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值