묻고답하기
page_full_width" class="col-xs-12" |cond="$__Context->page_full_width">
제로보드에 사용된 세션에 대해...
2002.08.06 18:34
* 세션 처리 (세션은 3일동안 유효하게 설정)
******************************************************************************/
// 세션 디렉토리가 없으면 생성
if(!is_dir($_zb_path.$_zbDefaultSetup[session_path])) {
mkdir($_zb_path.$_zbDefaultSetup[session_path], 0777);
chmod($_zb_path.$_zbDefaultSetup[session_path], 0777);
}
session_save_path($_zb_path.$_zbDefaultSetup[session_path]);
$_sessionStart = getmicrotime();
session_cache_limiter('nocache, must_revalidate');
// 3일동안 유지하는 부분
session_set_cookie_params($_zbDefaultSetup[session_time],"/");
// 세션 변수의 등록
session_start();
/* 기존 세션처리 (4.0x용 세션 처리로 인하여 주석 처리)
session_register("zb_logged_no");
session_register("zb_logged_time");
session_register("zb_logged_ip");
session_register("zb_last_connect_check");
session_register("zb_hit");
session_register("zb_vote");
session_register("zb_secret");
session_register("zb_name");
session_register("zb_email");
session_register("zb_homepage");
*/
// 조회수 가 512byte를, 투표 세션변수가 256byte를 넘을시 리셋 (개인서버를 이용시에는 조금 더 늘려도 됨)
// 기존 세션 처리 (4.0x용 세션 처리로 인하여 주석 처리)
//if(strlen($HTTP_SESSION_VARS[zb_hit])>$_zbDefaultSetup[session_view_size]) $HTTP_SESSION_VAR[zb_hit]='';
//if(strlen($HTTP_SESSION_VARS[zb_vote])>$_zbDefaultSetup[session_vote_size]) $HTTP_SESSION_VAR[zb_vote]='';
// 4.0x 용 세션 처리
if(strlen($HTTP_SESSION_VARS[zb_hit])>$_zbDefaultSetup[session_view_size]) {
$zb_hit='';
session_register("zb_hit");
}
if(strlen($HTTP_SESSION_VARS[zb_vote])>$_zbDefaultSetup[session_vote_size]) {
$zb_vote='';
session_register("zb_vote");
}
// 자동 로그인일때 제대로 된 자동 로그인인지 체크하는 부분
unset($autoLoginData);
$autoLoginData = getZBSessionID();
if($autoLoginData[no]) {
// 기존 세션 처리 (4.0x용 세션 처리로 인하여 주석 처리)
//$HTTP_SESSION_VARS["zb_logged_no"]=$autoLoginData[no];
//$HTTP_SESSION_VARS["zb_logged_ip"]=$REMOTE_ADDR;
//$HTTP_SESSION_VARS["zb_logged_time"]=time();
// 4.0x 용 세션 처리
$zb_logged_no=$autoLoginData[no];
$zb_logged_ip=$REMOTE_ADDR;
$zb_logged_time=time();
session_register("zb_logged_no");
session_register("zb_logged_ip");
session_register("zb_logged_time");
}
// 세션 값을 체크하여 로그인을 처리
if($HTTP_SESSION_VARS["zb_logged_no"]) {
// 로그인 시간이 지정된 시간을 넘었거나 로그인 아이피가 현재 사용자의 아이피와 다를 경우 로그아웃 시킴
if(time()-$HTTP_SESSION_VARS["zb_logged_time"]>$_zbDefaultSetup[login_time]||$HTTP_SESSION_VARS["zb_logged_ip"]!=$REMOTE_ADDR) {
// 기존 세션 처리 (4.0x용 세션 처리로 인하여 주석 처리)
//$HTTP_SESSION_VARS["zb_logged_no"]="";
//$HTTP_SESSION_VARS["zb_logged_time"]="";
//$HTTP_SESSION_VARS["zb_logged_ip"]="";
// 4.0x 용 세션 처리
$zb_logged_no="";
$zb_logged_time="";
$zb_logged_ip="";
session_register("zb_logged_no");
session_register("zb_logged_ip");
session_register("zb_logged_time");
// 유효할 경우 로그인 시간을 다시 설정
} else {
// 기존 세션 처리 (4.0x용 세션 처리로 인하여 주석 처리)
//$HTTP_SESSION_VARS["zb_logged_time"]=time();
// 4.0x 용 세션 처리
$zb_logged_time=time();
session_register("zb_logged_time");
}
}
$_sessionEnd = getmicrotime();
/*******************************************************************************
* install 페이지가 아닌 경우의 처리 마무리 &기본 정보 설정 및 함수 정의 시작
******************************************************************************/
$_nowConnectStart = getmicrotime();
// 현재 접속자의 데이타를 체크하여 파일로 저장 (회원, 비회원으로 구분해서 저장)
$_zb_now_check_intervalTime = time()-$HTTP_SESSION_VARS["zb_last_connect_check"];
if(!$HTTP_SESSION_VARS["zb_last_connect_check"]||$_zb_now_check_intervalTime>$_zbDefaultSetup[nowconnect_refresh_time]) {
// 기존 세션 처리 (4.0x용 세션 처리로 인하여 주석 처리)
//$HTTP_SESSION_VARS["zb_last_connect_check"] = time();
// 4.0x 용 세션 처리
$zb_last_connect_check = time();
session_register("zb_last_connect_check");
if($HTTP_SESSION_VARS["zb_logged_no"]) {
check_fileislocked($_zb_path."data/__now_member_connect.lock");
getNowConnector($_zb_path."data/now_member_connect.php",$HTTP_SESSION_VARS[zb_logged_no]);
} else {
check_fileislocked($_zb_path."data/__now_connect.lock");
getNowConnector($_zb_path."data/now_connect.php",$REMOTE_ADDR);
}
}
$total_member_connect = $total_connect = getNowConnector_num($_zb_path."data/now_member_connect.php");
$total_guest_connect = getNowConnector_num($_zb_path."data/now_connect.php");
}
$_nowConnectEnd = getmicrotime();
*** 위는 lib.php파일에 있는 세션 부분입니다.
혹..자세히 설명해줄.. 대강이라두...
특히
session_save_path($_zb_path.$_zbDefaultSetup[session_path]);
$_sessionStart = getmicrotime();
session_cache_limiter('nocache, must_revalidate');
// 3일동안 유지하는 부분
session_set_cookie_params($_zbDefaultSetup[session_time],"/");
요 부분에 대해서라두..
부탁드려요.. 초보라서.. 이해가 잘 가질 않네염..
******************************************************************************/
// 세션 디렉토리가 없으면 생성
if(!is_dir($_zb_path.$_zbDefaultSetup[session_path])) {
mkdir($_zb_path.$_zbDefaultSetup[session_path], 0777);
chmod($_zb_path.$_zbDefaultSetup[session_path], 0777);
}
session_save_path($_zb_path.$_zbDefaultSetup[session_path]);
$_sessionStart = getmicrotime();
session_cache_limiter('nocache, must_revalidate');
// 3일동안 유지하는 부분
session_set_cookie_params($_zbDefaultSetup[session_time],"/");
// 세션 변수의 등록
session_start();
/* 기존 세션처리 (4.0x용 세션 처리로 인하여 주석 처리)
session_register("zb_logged_no");
session_register("zb_logged_time");
session_register("zb_logged_ip");
session_register("zb_last_connect_check");
session_register("zb_hit");
session_register("zb_vote");
session_register("zb_secret");
session_register("zb_name");
session_register("zb_email");
session_register("zb_homepage");
*/
// 조회수 가 512byte를, 투표 세션변수가 256byte를 넘을시 리셋 (개인서버를 이용시에는 조금 더 늘려도 됨)
// 기존 세션 처리 (4.0x용 세션 처리로 인하여 주석 처리)
//if(strlen($HTTP_SESSION_VARS[zb_hit])>$_zbDefaultSetup[session_view_size]) $HTTP_SESSION_VAR[zb_hit]='';
//if(strlen($HTTP_SESSION_VARS[zb_vote])>$_zbDefaultSetup[session_vote_size]) $HTTP_SESSION_VAR[zb_vote]='';
// 4.0x 용 세션 처리
if(strlen($HTTP_SESSION_VARS[zb_hit])>$_zbDefaultSetup[session_view_size]) {
$zb_hit='';
session_register("zb_hit");
}
if(strlen($HTTP_SESSION_VARS[zb_vote])>$_zbDefaultSetup[session_vote_size]) {
$zb_vote='';
session_register("zb_vote");
}
// 자동 로그인일때 제대로 된 자동 로그인인지 체크하는 부분
unset($autoLoginData);
$autoLoginData = getZBSessionID();
if($autoLoginData[no]) {
// 기존 세션 처리 (4.0x용 세션 처리로 인하여 주석 처리)
//$HTTP_SESSION_VARS["zb_logged_no"]=$autoLoginData[no];
//$HTTP_SESSION_VARS["zb_logged_ip"]=$REMOTE_ADDR;
//$HTTP_SESSION_VARS["zb_logged_time"]=time();
// 4.0x 용 세션 처리
$zb_logged_no=$autoLoginData[no];
$zb_logged_ip=$REMOTE_ADDR;
$zb_logged_time=time();
session_register("zb_logged_no");
session_register("zb_logged_ip");
session_register("zb_logged_time");
}
// 세션 값을 체크하여 로그인을 처리
if($HTTP_SESSION_VARS["zb_logged_no"]) {
// 로그인 시간이 지정된 시간을 넘었거나 로그인 아이피가 현재 사용자의 아이피와 다를 경우 로그아웃 시킴
if(time()-$HTTP_SESSION_VARS["zb_logged_time"]>$_zbDefaultSetup[login_time]||$HTTP_SESSION_VARS["zb_logged_ip"]!=$REMOTE_ADDR) {
// 기존 세션 처리 (4.0x용 세션 처리로 인하여 주석 처리)
//$HTTP_SESSION_VARS["zb_logged_no"]="";
//$HTTP_SESSION_VARS["zb_logged_time"]="";
//$HTTP_SESSION_VARS["zb_logged_ip"]="";
// 4.0x 용 세션 처리
$zb_logged_no="";
$zb_logged_time="";
$zb_logged_ip="";
session_register("zb_logged_no");
session_register("zb_logged_ip");
session_register("zb_logged_time");
// 유효할 경우 로그인 시간을 다시 설정
} else {
// 기존 세션 처리 (4.0x용 세션 처리로 인하여 주석 처리)
//$HTTP_SESSION_VARS["zb_logged_time"]=time();
// 4.0x 용 세션 처리
$zb_logged_time=time();
session_register("zb_logged_time");
}
}
$_sessionEnd = getmicrotime();
/*******************************************************************************
* install 페이지가 아닌 경우의 처리 마무리 &기본 정보 설정 및 함수 정의 시작
******************************************************************************/
$_nowConnectStart = getmicrotime();
// 현재 접속자의 데이타를 체크하여 파일로 저장 (회원, 비회원으로 구분해서 저장)
$_zb_now_check_intervalTime = time()-$HTTP_SESSION_VARS["zb_last_connect_check"];
if(!$HTTP_SESSION_VARS["zb_last_connect_check"]||$_zb_now_check_intervalTime>$_zbDefaultSetup[nowconnect_refresh_time]) {
// 기존 세션 처리 (4.0x용 세션 처리로 인하여 주석 처리)
//$HTTP_SESSION_VARS["zb_last_connect_check"] = time();
// 4.0x 용 세션 처리
$zb_last_connect_check = time();
session_register("zb_last_connect_check");
if($HTTP_SESSION_VARS["zb_logged_no"]) {
check_fileislocked($_zb_path."data/__now_member_connect.lock");
getNowConnector($_zb_path."data/now_member_connect.php",$HTTP_SESSION_VARS[zb_logged_no]);
} else {
check_fileislocked($_zb_path."data/__now_connect.lock");
getNowConnector($_zb_path."data/now_connect.php",$REMOTE_ADDR);
}
}
$total_member_connect = $total_connect = getNowConnector_num($_zb_path."data/now_member_connect.php");
$total_guest_connect = getNowConnector_num($_zb_path."data/now_connect.php");
}
$_nowConnectEnd = getmicrotime();
*** 위는 lib.php파일에 있는 세션 부분입니다.
혹..자세히 설명해줄.. 대강이라두...
특히
session_save_path($_zb_path.$_zbDefaultSetup[session_path]);
$_sessionStart = getmicrotime();
session_cache_limiter('nocache, must_revalidate');
// 3일동안 유지하는 부분
session_set_cookie_params($_zbDefaultSetup[session_time],"/");
요 부분에 대해서라두..
부탁드려요.. 초보라서.. 이해가 잘 가질 않네염..