zoukankan      html  css  js  c++  java
  • 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文件。

            

  • 相关阅读:
    asp image
    Linux安装破解sublime text 2
    Ubuntu Java环境配置
    Ubuntu上完美视频播放软件XBMC
    制作Ubuntu Live启动盘
    STM32·flash烧写
    Ubuntu上用Windows那些软件
    Ubuntu屏幕亮度控制在acer4750g笔记本上失效的解决方法
    Ubuntu的grub启动界面,默认高亮选项的修改方法
    Ubuntu解决无法删除msttcorefonts的问题
  • 原文地址:https://www.cnblogs.com/wuzhicms/p/6612861.html
Copyright © 2011-2022 走看看