[PHP-users 25462] Re: セッションをDBへ保存できない

Yusuke ITO ito_yusuke @ white.livedoor.com
2005年 4月 24日 (日) 10:21:12 JST


伊東です。

--utsumi<u-takasan @ pat.hi-ho.ne.jp> wrote:
>ファイルに保存されたセッションデータを見ると、オブジェクトの部分に
>"^@*^@" という文字列があり、それが邪魔して、postgresに保存できないようで
>す。

パフォーマンスは落ちますが(どれくらい落ちるかは計測したことは有りませんが)
オブジェクトをserializeしてbase64_encodeしてから$_SESSIONに登録するとか。
当然、取り出す側ではbase64_decodeしてunserializeする必要があります。

#私は無用なトラブルを避けるため、関数化して使っています。

function set_session($session_var, $data){
  @session_start();
  $_SESSION[$session_var] = base64_encode(serialize($data));
}

function get_session($session_var){
  @session_start();
  if(isset($_SESSION[$session_var])){
    $data = unserialize(base64_deode($_SESSION[$session_var]));
    unset($_SESSION[$session_var]);
    return($data);
  }else{
    return(false);
  }
}

--
伊東 祐介
ito_yusuke @ white.livedoor.com




-----------------------------------------------
2GBまでメールや画像など貯め放題!さらに特典いっぱい♪
livedoor ギガメーラープラス 【新登場】
http://gigamailerplus.livedoor.com/



PHP-users メーリングリストの案内