实现跨脚本共享数据,用户登录验证
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
效果