牛骨文教育服务平台(让学习变的简单)

PHP.in中session和cookie的配置说明

1、session.name

该配置用于设置session的名字,这个值可以通过session_name()获取

2、session.use_trans_sid 默认为0

说明给每个url启用session名=sessionId,对安全又影响,不推荐开启

3、session.save_path = 路径

可以配置把网站的session文件放在那个目录下

4、下面的是一组,用来控制session文件存在时间

session.gc_maxlifetime = 1440//session文件生命周期

session.gc_probability = 1

session.gc_ divisor = 1000

说明,当某个用户操作session的时候,会使用到session_start(),该函数会跳用gc (垃圾回收机制)。但是其概率是 session.gcprobability /session.gc divisor /

5、session.cookie_lifetime =0

该设置可以指定cookie 默认的生命周期,默认为0,表示关闭浏览器后,该cookies失效。

6、自定义会话处理器

session的各种操作都可以通过自定义会话处理器来自己决定怎么处理。session_set_save_handler

如果你要自定义处理session,需要在php.ini文件中做一个设置

session.save_handler=[filesuser] 

<?php
function open($save_path, $session_name) 
{
  global $sess_save_path, $sess_session_name;
       
  $sess_save_path = $save_path;
  $sess_session_name = $session_name;
  return(true);
}

function close() 
{
  return(true);
}

function read($id) 
{
  global $sess_save_path, $sess_session_name;

  $sess_file = "$sess_save_path/sess_$id";
  if ($fp = @fopen($sess_file, "r")) {
    $sess_data = fread($fp, filesize($sess_file));
    return($sess_data);
  } else {
    return(""); // Must return "" here.
  }

}

function write($id, $sess_data) 
{
  global $sess_save_path, $sess_session_name;

  $sess_file = "$sess_save_path/sess_$id";
  if ($fp = @fopen($sess_file, "w")) {
    return(fwrite($fp, $sess_data));
  } else {
    return(false);
  }

}

function destroy($id) 
{
  global $sess_save_path, $sess_session_name;
       
  $sess_file = "$sess_save_path/sess_$id";
  return(@unlink($sess_file));
}

/***********************
* WARNING - You will need to implement some *
* sort of garbage collection routine here.  *
***********************/
function gc($maxlifetime) 
{
  return true;
}

session_set_save_handler("open", "close", "read", "write", "destroy", "gc");

session_start();

// proceed to use sessions normally

?>