自定义PHP会话类

时间:2012-11-07 19:13:55

标签: php database oop class session

我想要做的是编写一个自定义PHP会话类,在不使用session_set_save_handler()的情况下在数据库中存储会话。

这样做的目的是让我可以使用serialize()轻松存储数据并使用unserialize()返回。

我一整天都在寻找,在这个问题上找不到任何东西。任何人都可以帮助我开始或链接我一个有用的教程吗?

感谢。

1 个答案:

答案 0 :(得分:1)

你不需要内置的PHP会话,你可以自己设置cookie,阅读它并再次验证它,从那时起你就可以完成一个功能齐全的会话!

function createCookieString($id, $user, $created)
{
    $cookieData = array();
    $hash = $this->hashSession($id, $user, $created);

    $cookieData[] = $id;
    $cookieData[] = $user;
    $cookieData[] = $created;
    $cookieData[] = $hash;

    return implode(':', $cookieData);
}

function hashSession($id, $user, $created)
{
    $cookieSalt = 'Your Cookie Salt'; //google what a salt is in hashing if neccecary
    return md5($id.$user.$created.$cookieSalt);
}

function parseCookieString($string)
{
    return explode(':', $string);

}

要设置cookie,只需使用php的setcookie函数。

您只需将会话存储在数据库中即可。它通常很简单,只是一个带有ID,userID的表,创建(使用时间戳),你不需要哈希在你的数据库中,因为它是一个可重用的秘密。

随时提出更多问题!