코드이그나이터, 씨아이보드(ciboard) 중복로그인 막기 소스코드
원리는 간단하다.
로그인할때마다, 이전 세션파일을 삭제해주는 것이다.
ciboard 에는 로그인 세션값에 "regenerate" 라는 값이 있다.
로그인시에 고유번호인데, 이값을 로그인할때 DB에 저장해뒀다가,
로그인 할때마다, 해당 regenerate 값과 세션파일목록들중에 해당값이 존재하면, 해당 세션파일을 삭제해줌으로써 인해, 이전 로그인자의 로그인을 해제해 버리는 것이다.
if($userinfo['regenerate'] != "")
{
$session_dir = session_save_path();
$dirlist = opendir($session_dir);
while($file = readdir($dirlist))
{
//echo $file."<br>";
if ($file != "." && $file != "..")
{
if(strstr($file, "ci_"))
{
$session_file_path = $session_dir."/".$file;
$session_content = file($session_file_path);
$session_content = $session_content[0];
//echo $session_file_path."<br>";
//print_r2($session_content);exit;
preg_match("/__ci_last_regenerate\|i\:(.*?)\;/", $session_content, $match);
$regenerate = $match[1];
//echo "{$regenerate} == {$userinfo['regenerate']}<br>";
if($regenerate == $userinfo['regenerate'])
{
unlink($session_file_path);
break;
}
}
}
}
}