2012-11-07 3 views
0

내가하고 싶은 일은 session_set_save_handler()을 사용하지 않고 세션을 데이터베이스에 저장하는 PHP 세션 클래스를 작성하는 것입니다.맞춤 PHP 세션 클래스

이 목적은 serialize()을 사용하여 데이터를 쉽게 저장하고 unserialize()을 사용하여 데이터를 반환 할 수있게하기위한 것입니다.

나는 하루 종일 찾고 있었지만이 주제에 대해서는 아무것도 찾을 수 없습니다. 누구나 나를 시작하거나 유용한 자습서로 연결시켜 줄 수 있습니까?

감사합니다.

+4

문제는 당신이 찾고있는 것에 대해 명확한 생각이 없다는 것입니다. – Ibu

+2

session_set_save_handler()가 serialize()를 사용하지 못하게하는 이유는 무엇입니까? session_set_save_handler()의 목적은 세션을 사용자 정의하는 것입니다. 그것을 사용하지 않는 유일한 방법은 처음부터 완전히 자신 만의 세션 처리를 만드는 것입니다. (의미가있는 방식으로 적어도 $ _SESSION'을 사용할 수 없다는 것을 의미합니다.) – Cfreak

+0

@Cfreak 그것이 내가하는 것입니다. 전체 사용자 지정 처리기 – user18933

답변

1

PHP 세션을 내장 할 필요가 없습니다. 쿠키를 직접 설정하고, 읽고, 유효성을 검사 할 수 있습니다. 완전히 작동하는 세션이 있습니다!

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); 

} 

쿠키를 설정하려면 PHP의 setcookie 기능을 사용하십시오.

데이터베이스에 세션을 저장하기 만하면됩니다. 그 ID는 일반적으로 verry simple, ID, userID로 구성된 테이블이며, 재사용 가능한 비밀이기 때문에 해시가 필요하지 않습니다.

더 이상의 질문이 있으시면 언제든지 문의하십시오.

+0

감사합니다.이 기능을 제공합니다. 마음에 들면 최고 대답을 제시 할 것입니다. :) – user18933