PHP SESSION笔记

来源:IT星空
访问量:56
发布日期:2022-12-03
session 的过期时间由两方面决定的;


存储在客户端的 $_COOKIE[‘PHPSESSID’] 的过期时间(默认cookie名称为 PHPSESSID,可通过 php.ini 中的 session.name 修改。)


存储在服务器端的相对应的 session 文件(session 文件名和上述 cookie的值一一对应),默认为 1440 秒,即 24 分钟


ok,现在详细阐述上述两者的关系: 当执行 session_start() 的时候,其实是做了两件事:


检查客户端发送过来的的所有 cookie(当然也包括 $_COOKIE[‘PHPSESSID’], 如果有的话),根据 $_COOKIE[‘PHPSESSID’] 的值(这是由 apache 产生的随机字符串,如 0lkbd2se458r600m2m7o1r4ic5)来访问 相对应的 session文件(如:sess_0lkbd2se458r600m2m7o1r4ic5,我的默认存储在‘E:\wamp\tmp’下),这两者是一 一对应的关系。打个比喻:
$_COOKIE[‘PHPSESSID’] 就是一把开启宝盒的钥匙,而那个宝盒就是 session 文件,里面存储着用户的重要 信息,也就是 session 的值, 如:$_SESSION[‘uid’]=1, $_SESSION[‘username’]=’name’, $_SESSION[‘pwd’]=’pwd’, 当然文件里面的值是经过序列化的。
如果客户端没有传来 $_COOKIE[‘PHPSESSID’],就会有服务端产生一个随机的 $_COOKIE[‘PHPSESSID’] 并存储在客户端。