说说session里相关的事情(一)

 
    session工作机制是:当程序需要为某个客户端的请求创建一个session的时候,服务器首先会检查这个客户端是否包含了一个session标志,我们称之为session_id,如果客户端不包含session_id,会重新生成一个session_id。
    session关闭条件:1.启用了session_destroy重置函数时候删除2session的上次活动时间距离当前时间的间隔超过了session的超时设置时间也会自动关闭3.服务器进程被停止
    session的默认生命周期在php5里是180分钟(每个客户端访问都会留一个session的小文本占用一点内存做记录,所以要定期清除一定的session,为了保证性能)
    与session相关的一些常用函数:
    1. session_id  获取当前的session_id  会话识别id
    如果指定了 id 参数的值, 则使用指定值作为会话 ID。 必须在调用 session_start() 函数之前调用 session_id() 函数。 不同的会话管理器对于会话 ID 中可以使用的字符有不同的限制。
    2.session_name — 读取/设置会话名称  session_name() 函数返回当前会话名称。 如果指定 name 参数, session_name() 函数会更新会话名称, 并返回 原来的 会话名称。
        3.session_save_path ([ string $path ] ) session的保存地址 默认的保存文件名称是sess_SESSIONID
    session的默认读取函数
    4.session_set_save_handler
     设置用户自定义会话存储函数  默认的使用例子
    class MySessionHandler implements SessionHandlerInterface
             {
                   // 在这里实现接口
                }

               $handler = new MySessionHandler();
               session_set_save_handler($handler, true);
               session_start();
    
    
    
    php.ini里与session相关的最常用的设置:
    1.session.use_cookies默认值是1.表示用cookie来传递session_id(),反之是用query_string来传递
    2.session.name 这是用来储存session_id的键值,默认是PHPSESSID。session通过这个来保存session的信息
    3.session.cookie_lifetime:这个代表SessionID在客户端Cookie储存的时间,默认是0,代表浏览器一关闭SessionID就作废……就是因为这个所以Session不能永久使用!
    4.session.gc_maxlifetime = 1440  这个是Session数据在服务器端储存的时间,如果超过这个时间,那么Session数据就自动删除!
    5.session的保存路径:(有些系统没有权限读取默认的session储存路径Linux里是/tmp)
     session_save_path(dirname(__FILE__).'/phpernote/');
     设置保存路径的时候,需要先先于session_start()的启动  否则是保存不了的
    ini_set('session.save_path', dirname(__FILE__).'/phpernote/');

你可能感兴趣的:(说说session里相关的事情(一))