0

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

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

我一直在寻找一整天,找不到关于这个主题的任何东西。任何人都可以帮助我入门或将我链接到有用的教程吗?

谢谢。

4

1 回答 1

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、用户 ID 的表(作为时间戳),你不需要哈希在你的数据库中,因为它是一个可重用的秘密。

随时问更多问题!

于 2012-11-07T19:22:31.533 回答