セッション管理

汎用のセッション管理クラスを作ろうと思って前に作ったやつを修正していた。
前はログインしてからセッションを作成してたけど、標準で全ページセッションがあった方が都合がいい。


それと「ログイン情報を記憶する」みたいなチェックをつけたかったんだけど・・。

session_set_cookie_params($time);

とすればセッションの期限を設定できるっていう話。
でもセッションが既に開始されていたら、それを更新はできない。

session_set_cookie_paramsでは無理なんだって気付くのに時間がかかった・・。
マニュアルにもこれで設定するみたいに書いてあるしさぁ。


実際には

function sessionStart($lifetime = 0){
    session_start();

    if ($lifetime == 0){
        setcookie(session_name(), session_id());
    }else{
        setcookie(session_name(), session_id, time() + $lifetime);
    }
}

とクッキーを直接操作しないと既に発行済みのセッション期限は変えれないみたい。
Firefoxのクッキー情報を見ながらデバッグしてやっと分かった・・。