我想要做的是編寫一個自定義PHP會話類,該會話類在數據庫中存儲會話而不使用session_set_save_handler()
。自定義PHP會話類
這樣做的目的是讓我可以使用serialize()
輕鬆存儲數據,並使用unserialize()
將其返回。
我一直在尋找一整天,在這個問題上找不到任何東西。任何人都可以幫助我開始或將我鏈接到一個有用的教程?
謝謝。
我想要做的是編寫一個自定義PHP會話類,該會話類在數據庫中存儲會話而不使用session_set_save_handler()
。自定義PHP會話類
這樣做的目的是讓我可以使用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,創建(beeing時間戳)表,你不需要哈希在你的分貝,因爲它是一個可重用的祕密。
隨時問任何問題!
謝謝,如果我喜歡它,我會給你一個答案。 – user18933
問題是,你不清楚你在找什麼。 – Ibu
session_set_save_handler()爲什麼會阻止你使用serialize()? session_set_save_handler()的用途是自定義會話。唯一不使用它的方法是完全從頭開始創建自己的會話處理(意味着您不能使用全局'$ _SESSION' ...至少不能以有意義的方式使用。 – Cfreak
@Cfreak那就是我尋找一個完整的自定義處理程序 – user18933