美文网首页
php session

php session

作者: 苍老师的眼泪 | 来源:发表于2020-09-19 17:06 被阅读0次
    1. session中重要的函数:
    session_write_close();
    

    操作完某个session文件后,及时调用以上函数可以解除该session文件的锁。(session_start会锁住当前脚本需要访问的session文件,直到脚本结束自动解开或者直接手动调用session_write_close()等方法解开该session文件的锁。在session的文件锁被解开之前,其他程序访问不了该session所以会阻塞。其它的session文件如果没有被文件锁锁住,则不受影响)

    1. session GC
      当用file存储session文件时,存放session的文件会越来越多,此时要想办法自动清理那些废弃的session文件,session GC做这件事情的。用一句话来描述是:每次在session初始化的时候(session_start),有session.gc_probability / session.gc_divisor的概率(以下设置为1 / 1000)的可能性启动gc进程来清除那些超过session.gc_maxlifetime(以下设置为1440)秒没有被访问过的session文件。
      谨记:
    ; NOTE: If you are using the subdirectory option for storing session files
    ;       (see session.save_path), then garbage collection does *not*
    ;       happen automatically.  You will need to do your own garbage
    ;       collection through a shell script, cron entry, or some other method.
    ;       For example, the following script is the equivalent of setting
    ;       session.gc_maxlifetime to 1440 (1440 seconds = 24 minutes):
    ;          find /path/to/sessions -cmin +24 -type f | xargs rm
    
    session.gc_probability = 1
    session.gc_divisor = 1000
    session.gc_maxlifetime = 1440
    
    1. session 退出登录
    session_start();
    setcookie('PHPSESSID', '', -1);
    session_unset();
    session_destroy();
    
    1. php设置、获取session文件的存放目录
      (1)设置php.ini
    session.save_path
    

    (2)调用函数 读取/设置当前会话的保存路径

    session_save_path();
    
    1. cookie被禁用了,session还能用么?
      (1)能用,php有两种方式用来传送会话 ID:Cookies 和 URL 参数,(如果同时传,则接收前者的值)后者没那么安全。
      (2)cookie没有被禁用的时候,浏览器向服务器发送请求时,会自动带上cookie。SESSIONID放在cookie里面,所以服务器可以根据SESSIONID找到相应的session文件。
      (3)cookie被禁用时,还可以通过get、post参数来向服务器提供SESSIONID。
      (4)php支持通过URL 参数 来向服务器提供SESSIONID。但是要设置php.ini:
    session.use_only_cookies = 0
    session.use_trans_sid = 1
    

    或者调用session_start时给出参数:

    session_start(['use_only_cookies'=>0, "use_trans_sid"=>1]);
    

    覆盖php.ini中的配置项。

    tips: php可以用

    setcookie('PHPSESSID', '', -1);
    

    来模拟cookie被禁用的情况。

    相关文章

      网友评论

          本文标题:php session

          本文链接:https://www.haomeiwen.com/subject/gxieyktx.html