由于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的知识的更多相关文章

  1. Session基础知识

    Session基础知识 主题 概念  Session的创建 Session的存储机制 Session的失效 参考资料   概念        Session代表一次用户会话.一次用户会话的含义是:从客 ...

  2. [转]一些NSArray,NSDictionary,NSSet相关的算法知识

    iOS编程当中的几个集合类:NSArray,NSDictionary,NSSet以及对应的Mutable版本,应该所有人都用过.只是简单使用的话,相信没人会用错,但要做到高效(时间复杂度)精确(业务准 ...

  3. 尚学linux课程---9、yum相关操作和知识

    尚学linux课程---9.yum相关操作和知识 一.总结 一句话总结: 如何使用比如163,阿里云给yum配置yum源:去官网,不要百度:直接去官网,有帮助文档的(比如centos的就在centos ...

  4. Build2016上值得一看的大数据相关Session

    (此文章同时发表在本人微信公众号"dotNET每日精华文章",欢迎右边二维码来关注.) 题记:Build2016开完很久了,现在才来回顾下,就说说那些和大数据相关的Session, ...

  5. SESSION的知识

    android模拟表单用到了httpclient,但是需要了解Jsessionid的相关知识 如下是从一篇博文摘抄来的 在web应用的开发中我们会经常看到这样的url:http://www.xxx.c ...

  6. 一些NSArray,NSDictionary,NSSet相关的算法知识

    iOS编程当中的几个集合类:NSArray,NSDictionary,NSSet以及对应的Mutable版本,应该所有人都用过.只是简单使用的话,相信没人会用错,但要做到高效(时间复杂度)精确(业务准 ...

  7. 遍历删除查临时表相关session再操作表

    示例如下 删除 inf_getuserinfoforywh_temp1 (前提,相关用到inf_getuserinfoforywh_temp1的应用必须先停了) create or replace p ...

  8. http session 基础知识

    因为Http的无接连,无状态,所以造就了Cookie,Session的诞生. Session也是类似Cookie一样的功能,用于记录客户端浏览器与服务器端交互的会话状态.它与Cookie的重要区别是: ...

  9. 测量行业(RTK)相关的小知识总结

    RTK测量系统,一般需要先架设基准站(参考站),数据链模式外挂大电台(有天线大功率模式,理想范围方圆18公里以内).基准站通过收到卫星(多星)进行计算出当前的位置. 其中涉及到频率的设置,波特率,以及 ...

随机推荐

  1. Markdown排版介绍

    如何排版章节 Markdown: 大标题 ========== 小标题 ---------- # 一级标题 ## 二级标题 ### 三级标题 #### 四级标题 例如 三级 和四级 发布后的效果: 三 ...

  2. matlab逻辑类型

    matlab逻辑类型 matlab逻辑表达式输出:1为真,0为假. matlab关系操作符: 关系操作符 说明 < 小于 <= 小于等于 > 大于 >= 大于等于 == 等于 ...

  3. Java编程语言学习01-编写第1个Java程序

    JVM/JRE/JDK JVMJava虚拟机(Java Virtual Machine)它是运行所有Java程序的虚拟计算机有的java程序会首先被编译为.class的类文件,这种类文件可以在虚拟机上 ...

  4. zabbix容器化安装及监控docker应用

    一.zabbix agent2 介绍 从Zabbix 4.4之后,官方推出了Zabbix Agent 2,意味着zabbix 不在只是物理机监控的代名词,现在你可以使用Go为Zabbix编写插件,来监 ...

  5. 2021S软件工程——案例分析作业

    2021S软件工程--案例分析作业 18231169 黄思为 项目 内容 这个作业属于哪个课程 2021春季软件工程(罗杰 任建) 这个作业的要求在哪里 案例分析作业 我在这个课程的目标是 了解并熟悉 ...

  6. 1025 PAT Ranking

    Programming Ability Test (PAT) is organized by the College of Computer Science and Technology of Zhe ...

  7. Review: JQuery

    1.DOM access with jQuery 1 $("h1"); //select all the h1s 2 $("#heading"); // sel ...

  8. form表单验证提交

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  9. 路由器逆向分析------QEMU的下载和安装(Linux平台)

    本文博客地址:http://blog.csdn.net/qq1084283172/article/details/68953160 一.QEMU源码的下载和编译 QEMU源码的github下载地址:h ...

  10. java.lang.ClassNotFoundException的解决方案

    举一个特定的例子 java.lang.ClassNotFoundException: org.apache.commons.dbcp.BasicDataSource 到Maven中央仓库下载 当我们看 ...