mirror of
https://github.com/Lastorder-DC/rhymix.git
synced 2026-01-09 11:44:10 +09:00
#87. 오픈아이디로 가입하였을 경우 탈퇴하여 DB에서 정보를 삭제 할 수 있도록 기능 추가
git-svn-id: http://xe-core.googlecode.com/svn/sandbox@2615 201d5d3c-b55e-5fd7-737f-ddc643e51545
This commit is contained in:
parent
4ed1f14503
commit
0b6d2fee39
13 changed files with 127 additions and 13 deletions
|
|
@ -121,12 +121,7 @@
|
|||
* @brief 로그아웃
|
||||
**/
|
||||
function procMemberLogout() {
|
||||
$_SESSION['is_logged'] = false;
|
||||
$_SESSION['ipaddress'] = $_SERVER['REMOTE_ADDR'];
|
||||
$_SESSION['logged_info'] = NULL;
|
||||
$_SESSION['member_srl'] = NULL;
|
||||
$_SESSION['group_srls'] = array();
|
||||
$_SESSION['is_admin'] = NULL;
|
||||
$this->destroySessionInfo();
|
||||
return new Object();
|
||||
}
|
||||
|
||||
|
|
@ -726,12 +721,38 @@
|
|||
$output = $this->deleteMember($member_srl);
|
||||
if(!$output->toBool()) return $output;
|
||||
|
||||
$_SESSION['is_logged'] = false;
|
||||
$_SESSION['logged_info'] = null;
|
||||
// 모든 세션 정보 파기
|
||||
$this->destroySessionInfo();
|
||||
|
||||
// 성공 메세지 리턴
|
||||
$this->setMessage('success_leaved');
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 오픈아이디 탈퇴
|
||||
**/
|
||||
function procMemberOpenIDLeave() {
|
||||
// 비로그인 상태이면 에러
|
||||
if(!Context::get('is_logged')) return $this->stop('msg_not_logged');
|
||||
|
||||
// 현재 ip와 세션 아이피 비교
|
||||
if($_SESSION['ipaddress']!=$_SERVER['REMOTE_ADDR']) return $this->stop('msg_not_permitted');
|
||||
|
||||
// 로그인한 유저의 정보를 가져옴
|
||||
$logged_info = Context::get('logged_info');
|
||||
$member_srl = $logged_info->member_srl;
|
||||
|
||||
$output = $this->deleteMember($member_srl);
|
||||
if(!$output->toBool()) return $output;
|
||||
|
||||
// 모든 세션 정보 파기
|
||||
$this->destroySessionInfo();
|
||||
|
||||
// 성공 메세지 리턴
|
||||
$this->setMessage('success_leaved');
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @brief 이미지 이름을 추가
|
||||
**/
|
||||
|
|
@ -960,6 +981,10 @@
|
|||
function setSessionInfo($member_info) {
|
||||
if(!$member_info->member_srl) return;
|
||||
|
||||
// 오픈아이디인지 체크
|
||||
if(eregi("^([0-9a-z]+)$", $member_info->user_id)) $member_info->is_openid = false;
|
||||
else $member_info->is_openid = true;
|
||||
|
||||
// 로그인 처리
|
||||
$_SESSION['is_logged'] = true;
|
||||
$_SESSION['ipaddress'] = $_SERVER['REMOTE_ADDR'];
|
||||
|
|
@ -1312,5 +1337,15 @@
|
|||
|
||||
return sprintf("%08lx%08lx", $nr, $nr2);
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief 모든 세션 정보 파기
|
||||
**/
|
||||
function destroySessionInfo() {
|
||||
if(!$_SESSION || !is_array($_SESSION)) return;
|
||||
foreach($_SESSION as $key => $val) {
|
||||
$_SESSION[$key] = '';
|
||||
}
|
||||
}
|
||||
}
|
||||
?>
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue