自定义PHP会话类

自定义PHP会话类,php,database,oop,class,session,Php,Database,Oop,Class,Session,我想做的是编写一个自定义PHP会话类,它在数据库中存储会话,而不使用session\u set\u save\u handler() 这样做的目的是,我可以使用serialize()轻松存储数据,并使用unserialize()返回数据 我找了一整天,找不到关于这个主题的任何东西。有人能帮我入门或者把我链接到有用的教程吗 谢谢。你不需要内置PHP会话,你可以自己设置cookie,阅读并再次验证,从那时起,你就有了一个功能齐全的会话 function createCookieString($id,

我想做的是编写一个自定义PHP会话类,它在数据库中存储会话,而不使用
session\u set\u save\u handler()

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

我找了一整天,找不到关于这个主题的任何东西。有人能帮我入门或者把我链接到有用的教程吗


谢谢。

你不需要内置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的表(即时间戳),您不需要将哈希放入数据库中,因为它是一个可重用的秘密


请随时提问

问题是你不清楚你在寻找什么。为什么session\u set\u save\u handler()会阻止你使用serialize()?session_set_save_handler()的目的是自定义会话。不使用它的唯一方法是完全从头开始创建您自己的会话处理(这意味着您也不能以有意义的方式使用
$\u会话
global…。@Cfreak这正是我要找的。一个完整的自定义处理程序。谢谢,我会尝试一下,如果我喜欢,我会给您一个最佳答案。:)