PHPカスタムセッション保存経路および削除、ログアウト、書き込み方法

2456 ワード

この例では、PHPカスタムセッションの保存パスと削除、ログアウト、書き込みの方法について説明します.皆さんの参考にしてください.具体的な方法は以下の通りです.
 
  
$sessionpath=session_save_path();        // session
echo $sessionpath;
if(strpos($sessionpath,";")!==false)        //
{
  $sessionpath=substr($sessionpath,strpos($sessionpath,";")+1);  //
}
function open($save_path,$session_name)      //
{
  global $sess_save_path,$sess_session_name;     // session
  $sess_save_path=$save_path;        //
  $sess_session_name=$session_name;       // session
  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("");            //
  }
}
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));         // session
}
function gc($maxlifetime)          //
{
  return true;            //
}
session_set_save_handler("open","close","read","write","destroy","gc"); //
session_start();            // session
// session

ここで述べたことが皆さんのPHPプログラム設計に役立つことを願っています.