• 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文件。

            

  • 相关阅读:
    笨办法学Python——学习笔记4
    意识、语言、文字和程序感想
    笨办法学Python——学习笔记3
    把vim作为shell ide
    HDUYuna's confusion 树状数组 Or Multiset
    POJ3252 Round Numbers 组合数学
    HDU3874 Necklace 树状数组+离线处理
    UVA10212 The Last Nonzero Digit. 分解质因子+容斥定理
    HDU1041 Computer Transformation 大数
    HDUFish买电脑 二分查找
  • 原文地址:https://www.cnblogs.com/wuzhicms/p/6612861.html
Copyright © 2020-2023  润新知