PHP에서 세션 관리를 수행하는 방법과 로그인 세션 해시를 생성하기 위해 session_id()
을 사용하여 하나의 로그인 세션 만 허용하려는 방법을 배우고 있습니다. 부름 session_id()
동일한 해시가 반환됩니다 0b055b4f53310060d84535ee8e3bf663
. 여러 사용자와 로그인을 시도했는데, 각 로그인 세션과 각 사용자에 대해 동일한 해시를 반환합니다. SessionID는 PHP에서 고유하지 않습니다
//Login.php:
session_start(); // Starting Session
//Take inputs, do user query
if (queryResultRows == 1){
$_SESSION['userid']=$userinfo["uid"];
$_SESSION['userlevel']=$userinfo["userlevel"];
$_SESSION['login_user']=$username; // Initializing Session
$sessionid = session_id();
//Insert sessionId into DB..
//Redirect to next page.
}
//Logout.php:
session_start();
if(session_destroy()) // Destroying All Sessions
{
header("Location: index.php"); // Redirecting To Home Page
}
지금 내가 로그인을 시도, 내가 성공적으로 다음 logout.php을 initated (세션이 생성하고 노력하고 있습니다) 내 페이지의 모든 세션 제한 구역에 대한 액세스 권한을 가지고, 세션이 파괴되었다, 난 더 이상 액세스 없었다 , 다시 로그인했지만
session_id()
값은 여전히 동일합니다. 어떤 아이디어가 내가 여기서 잘못하고있는거야?
session_regenerate_id
그래서 그것을 할 것 세션 ID 쿠키를 덮어 쓰기로 새로운 SESSION_ID를 다시 생성 할 수 있습니까? – Banana주어진 정보에 따르면, 당신은'session_destroy()'다음에'session_regenerate_id()'를 사용하거나'setcookie()'를 사용하여 세션 쿠키를 해제해야한다고 생각합니다 : _ session_regenerate_id()는 새로운 세션 쿠키를 새 세션 id._ [출처] (https://secure.php.net/manual/en/function.session-regenerate-id.php) – Caligone