我想要做的是编写一个自定义 PHP 会话类,将会话存储在数据库中,而不使用session_set_save_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、用户 ID 的表(作为时间戳),你不需要哈希在你的数据库中,因为它是一个可重用的秘密。
随时问更多问题!