PHP相关session的知识
由于http协议是一种无状态协议,所以没有办法在多个页面间保持一些信息。例如,用户的登录状态,不可能让用户每浏览一个页面登录一次。session就是为了解决一些需要在多页面间持久保持一种状态的机制。PHP从4.1版本开始支持session机制。
一、session运行机制
session_start():在页面中调用此函数,PHP会在服务器端生成一个session文件,并将一个空字符串写入到文件中;在页面结束生命周期前,session会把在此生命周期内产生的数据写入到session的文件中。

二、session在php.ini中的配置
与sessionId传递相关的设置:
1、session.use_cookie = 1 //是否采用cookie传递sessionId,默认是1,表示启用
2、 session_name = PHPSESSID //通过cookie或者get传递sessionId的键名
3、session.use_only_cookie = 0 //表示只用cookie传递sessionId
4、session.cookie_lifetime = 0 //关闭浏览器清除cookie值
5、session.cookie_path = / //浏览器cookie文件存储路径
6、session.cookie_domain = //cookie对应的域名地址
与session文件存储相关的设置:
1、session.save_handler = file //用户读取和存储session数据的方式,默认是file
2、session.save_path = "/var/lib/php/session" //指的保存session文件的目录,可以指定到其他目录,但是目录必须要有httpd的守护进程属主权限。
3、session.auto_start = 0 //如果启用,每次请求都会初始化session。建议不启用通过session_start()来启用
与session回收有关的php.ini的设置:
1、session.gc_probability 和 session.gc_divisor //确定了GC启用的概率,默认是1/1000
2、session.gc_maxlifttime = 1440 //设置session文件存活时长
三、几个常用的操作session的函数
1、session_start() //初始化session,一个session的生命周期开始。session的初始化意味着声明一个$_SESSION全局数组变量,并读取session文件中的值到$_SESSION变量中
2、$_SESSION //数组类型,在生命周期内读取session到数组中,同时也可以赋值给他,并在页面关闭时把值写入的session文件中。
3、session_unset() //清空session数据,或者是说清空$_SESSION中的值
4、session_destroy() //注销一个session会话,意味着session的生命周期结束了。同时,会删除服务器上的session文件,但不会删除全局变量$_SESSION,如果删除全局变量可以用unset()函数。
四、session的回收
session文件失效分为两部分,一部分为浏览器存储的cookie可以通过expire设置过期,服务器端的session文件,PHP通过启动GC进程来清除相关session文件。
PHP相关session的知识的更多相关文章
- Session基础知识
Session基础知识 主题 概念 Session的创建 Session的存储机制 Session的失效 参考资料 概念 Session代表一次用户会话.一次用户会话的含义是:从客 ...
- [转]一些NSArray,NSDictionary,NSSet相关的算法知识
iOS编程当中的几个集合类:NSArray,NSDictionary,NSSet以及对应的Mutable版本,应该所有人都用过.只是简单使用的话,相信没人会用错,但要做到高效(时间复杂度)精确(业务准 ...
- 尚学linux课程---9、yum相关操作和知识
尚学linux课程---9.yum相关操作和知识 一.总结 一句话总结: 如何使用比如163,阿里云给yum配置yum源:去官网,不要百度:直接去官网,有帮助文档的(比如centos的就在centos ...
- Build2016上值得一看的大数据相关Session
(此文章同时发表在本人微信公众号"dotNET每日精华文章",欢迎右边二维码来关注.) 题记:Build2016开完很久了,现在才来回顾下,就说说那些和大数据相关的Session, ...
- SESSION的知识
android模拟表单用到了httpclient,但是需要了解Jsessionid的相关知识 如下是从一篇博文摘抄来的 在web应用的开发中我们会经常看到这样的url:http://www.xxx.c ...
- 一些NSArray,NSDictionary,NSSet相关的算法知识
iOS编程当中的几个集合类:NSArray,NSDictionary,NSSet以及对应的Mutable版本,应该所有人都用过.只是简单使用的话,相信没人会用错,但要做到高效(时间复杂度)精确(业务准 ...
- 遍历删除查临时表相关session再操作表
示例如下 删除 inf_getuserinfoforywh_temp1 (前提,相关用到inf_getuserinfoforywh_temp1的应用必须先停了) create or replace p ...
- http session 基础知识
因为Http的无接连,无状态,所以造就了Cookie,Session的诞生. Session也是类似Cookie一样的功能,用于记录客户端浏览器与服务器端交互的会话状态.它与Cookie的重要区别是: ...
- 测量行业(RTK)相关的小知识总结
RTK测量系统,一般需要先架设基准站(参考站),数据链模式外挂大电台(有天线大功率模式,理想范围方圆18公里以内).基准站通过收到卫星(多星)进行计算出当前的位置. 其中涉及到频率的设置,波特率,以及 ...
随机推荐
- Markdown排版介绍
如何排版章节 Markdown: 大标题 ========== 小标题 ---------- # 一级标题 ## 二级标题 ### 三级标题 #### 四级标题 例如 三级 和四级 发布后的效果: 三 ...
- matlab逻辑类型
matlab逻辑类型 matlab逻辑表达式输出:1为真,0为假. matlab关系操作符: 关系操作符 说明 < 小于 <= 小于等于 > 大于 >= 大于等于 == 等于 ...
- Java编程语言学习01-编写第1个Java程序
JVM/JRE/JDK JVMJava虚拟机(Java Virtual Machine)它是运行所有Java程序的虚拟计算机有的java程序会首先被编译为.class的类文件,这种类文件可以在虚拟机上 ...
- zabbix容器化安装及监控docker应用
一.zabbix agent2 介绍 从Zabbix 4.4之后,官方推出了Zabbix Agent 2,意味着zabbix 不在只是物理机监控的代名词,现在你可以使用Go为Zabbix编写插件,来监 ...
- 2021S软件工程——案例分析作业
2021S软件工程--案例分析作业 18231169 黄思为 项目 内容 这个作业属于哪个课程 2021春季软件工程(罗杰 任建) 这个作业的要求在哪里 案例分析作业 我在这个课程的目标是 了解并熟悉 ...
- 1025 PAT Ranking
Programming Ability Test (PAT) is organized by the College of Computer Science and Technology of Zhe ...
- Review: JQuery
1.DOM access with jQuery 1 $("h1"); //select all the h1s 2 $("#heading"); // sel ...
- form表单验证提交
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- 路由器逆向分析------QEMU的下载和安装(Linux平台)
本文博客地址:http://blog.csdn.net/qq1084283172/article/details/68953160 一.QEMU源码的下载和编译 QEMU源码的github下载地址:h ...
- java.lang.ClassNotFoundException的解决方案
举一个特定的例子 java.lang.ClassNotFoundException: org.apache.commons.dbcp.BasicDataSource 到Maven中央仓库下载 当我们看 ...