Files
dev.ttsby.com/modules/member/themes/_desktop/bs4-default/settings/account.php
2023-04-17 11:06:08 +09:00

394 lines
14 KiB
PHP

<?php include_once $g['dir_module_skin'].'_header.php'?>
<div class="page-wrapper row">
<nav class="col-3 page-nav">
<?php include_once $g['dir_module_skin'].'_nav.php'?>
</nav>
<div class="col-9 page-main">
<?php if (!getValid($my['last_log'],$d['member']['settings_expire'])): //로그인 후 경과시간 비교(분 ?>
<div class="subhead mt-0">
<h2 class="subhead-heading">회원계정 관리</h2>
</div>
<?php include_once $g['dir_module_skin'].'_lock.php'?>
<?php else: ?>
<div class="subhead mt-0">
<h2 class="subhead-heading">비밀번호 <?php echo $my['last_pw']?'변경':'등록' ?></h2>
</div>
<form class="card" id="pwChangeForm" role="form" action="<?php echo $g['s']?>/" method="post">
<div class="card-header">
<div class="media">
<i class="fa fa-key fa-3x mx-3" aria-hidden="true"></i>
<div class="media-body">
<?php if ($my['last_pw']): ?>
현재 비밀번호는 <mark><?php echo getDateFormat($my['last_pw'],'Y.m.d')?></mark> 에 변경(등록)되었으며 <mark><?php echo -getRemainDate($my['last_pw'])?>일</mark>이 경과되었습니다. <br>
비밀번호는 가급적 주기적으로 변경해 주세요.
<?php else: ?>
본 계정은 소셜로그인을 통해 가입된 계정으로 현재 비밀번호가 등록되어 있지 않습니다.<br>
비밀번호를 등록하면 비밀번호를 통한 로그인이 가능합니다.
<?php endif; ?>
</div>
</div>
</div>
<div class="card-body">
<input type="hidden" name="r" value="<?php echo $r?>">
<input type="hidden" name="m" value="<?php echo $m?>">
<input type="hidden" name="a" value="settings_account">
<input type="hidden" name="act" value="pw">
<input type="hidden" name="check_pw1" value="0">
<input type="hidden" name="check_pw2" value="0">
<div class="form-group row">
<label class="col-sm-2 col-form-label">신규 비밀번호</label>
<div class="col-sm-10">
<input type="password" class="form-control w-50" name="pw1" value="" onkeyup="pw1Check();" placeholder="비밀번호(6~16자리)">
<div class="invalid-tooltip" id="pw1-feedback"></div>
</div>
</div>
<div class="form-group row">
<label class="col-sm-2 col-form-label">비밀번호 확인</label>
<div class="col-sm-10">
<input type="password" class="form-control w-50" name="pw2" value="" placeholder="한번 더 입력하세요.">
<div class="invalid-tooltip" id="pw2-feedback"></div>
</div>
</div>
</div><!-- ./card-body -->
<div class="card-footer d-flex justify-content-between align-items-center">
<?php if ($my['last_pw']): ?>
<button type="submit" class="btn btn-light">
<span class="not-loading">변경하기</span>
<span class="is-loading"><i class="fa fa-spinner fa-lg fa-spin fa-fw"></i> 변경중 ...</span>
</button>
<?php else: ?>
<span></span>
<button type="submit" class="btn btn-light">
<span class="not-loading">등록하기</span>
<span class="is-loading"><i class="fa fa-spinner fa-lg fa-spin fa-fw"></i> 등록중 ...</span>
</button>
<?php endif; ?>
</div>
</form><!-- /.card -->
<div class="subhead mt-5">
<h2 class="subhead-heading">아이디 변경</h2>
</div>
<div class="card">
<div class="card-body">
<ul class="list-unstyled">
<li>· 회원님의 공개 프로필 주소는 <a href="/@<?php echo $my['id'] ?>" target="_blank"><?php echo $_SERVER['HTTP_HOST']; ?>/@<?php echo $my['id'] ?></a> 입니다.</li>
<li>· 아이디는 계정이 만들어질때 자동으로 생성되며 중복되지 않을 경우 변경등록이 가능합니다.</li>
<li>· 아이디는 로그인 및 공개 프로필 주소에 활용됩니다.</li>
</ul>
<hr>
<form id="idChangeForm" role="form" action="<?php echo $g['s']?>/" method="post">
<input type="hidden" name="r" value="<?php echo $r?>">
<input type="hidden" name="m" value="<?php echo $m?>">
<input type="hidden" name="a" value="settings_account">
<input type="hidden" name="act" value="id">
<input type="hidden" name="check_id" value="1">
<div class="form-group row my-5">
<label class="col-sm-2 col-form-label text-center">아이디</label>
<div class="col-sm-10">
<div class="input-group w-75 position-relative mb-0">
<input type="text" class="form-control" name="id" placeholder="아이디" value="<?php echo $my['id'] ?>" size="13" maxlength="13" onkeyup="idCheck(this,'id-feedback');">
<div class="invalid-tooltip" id="id-feedback"></div>
<div class="input-group-append">
<button type="submit" class="btn btn-light">
<span class="not-loading">변경하기</span>
<span class="is-loading">처리중 ...</span>
</button>
</div>
</div>
</div>
</div>
</form>
</div>
</div>
<div class="subhead mt-5">
<h2 class="subhead-heading">회원탈퇴</h2>
</div>
<form class="card" name="procForm" role="form" action="<?php echo $g['s']?>/" method="post">
<div class="card-header">
<div class="media">
<i class="fa fa-user-times fa-3x mx-3" aria-hidden="true"></i>
<div class="media-body">
사용하고 계신 아이디 (<code><?php echo $my['id'] ?></code>) 는 탈퇴할 경우 재사용 및 복구가 불가능합니다. <br>
탈퇴한 아이디는 본인과 타인 모두 재사용 및 복구가 불가하오니 신중하게 선택하시기 바랍니다.
</div>
</div>
</div>
<div class="card-body">
<ul class="list-unstyled">
<li>· 탈퇴 후 회원정보 및 개인형 서비스 이용기록은 모두 삭제됩니다.</li>
<li>· 회원정보 및 개인형 서비스 이용기록은 모두 삭제되며, 삭제된 데이터는 복구되지 않습니다.</li>
<li>· 삭제되는 내용을 확인하시고 필요한 데이터는 미리 백업을 해주세요.</li>
<li>· 탈퇴 후에는 아이디 (<code><?php echo $my['id'] ?></code>)로 다시 가입할 수 없으며 아이디와 데이터는 복구할 수 없습니다.</li>
<li>· 게시판형 서비스에 남아 있는 게시글과 댓글은 탈퇴 후 삭제할 수 없습니다.</li>
</ul>
<div class="custom-control custom-checkbox f16">
<input type="checkbox" class="custom-control-input" id="reaveCheck">
<label class="custom-control-label" for="reaveCheck">위 내용을 모두 확인하였습니다.</label>
</div>
<hr>
<div class="form-group row">
<label class="col-sm-2 col-form-label text-center">아이디</label>
<div class="col-sm-10">
<input type="text" name="id" readonly class="form-control-plaintext" value="<?php echo $my['id'] ?>">
</div>
</div>
<div class="form-group row">
<label class="col-sm-2 col-form-label text-center">이름</label>
<div class="col-sm-10">
<input type="text" name="name" readonly class="form-control-plaintext" value="<?php echo $my['name'] ?>">
</div>
</div>
<div class="form-group row">
<label class="col-sm-2 col-form-label text-center">비밀번호</label>
<div class="col-sm-8">
<input type="password" name="pw" id="password" class="form-control form-control-lg" placeholder="" required="" autocomplete="new-pw">
<div class="invalid-feedback mt-2" data-role="passwordErrorBlock"></div>
</div>
</div>
<div class="form-group row">
<label class="col-sm-2 col-form-label text-center"></label>
<div class="col-sm-8">
<input type="password" name="pw2" class="form-control form-control-lg" placeholder="다시 한번 입력해주세요." required="" value="">
<div class="invalid-feedback mt-2" data-role="passwordErrorBlock"></div>
<p class="mt-3 mb-0 text-muted">회원탈퇴를 원하시면 비밀번호를 입력하신 후 ‘탈퇴하기’ 버튼을 클릭해 주세요.</p>
</div>
</div>
</div>
<div class="card-footer d-flex justify-content-between align-items-center">
<a href="<?php echo RW('mod=password_reset')?>">비밀번호를 분실했어요.</a>
<button type="submit" class="btn btn-light text-danger">탈퇴하기</button>
</div>
</form><!-- /.card -->
<script type="text/javascript">
var f_pw = getId('pwChangeForm'); // dom 선택자
var form_pw = $('#pwChangeForm'); // jquery 선택자
var f_id = getId('idChangeForm'); // dom 선택자
var form_id = $('#idChangeForm'); // jquery 선택자
function pw1Check() {
var layer = 'pw1-feedback';
if (!f_pw.pw1.value) {
f_pw.pw1.classList.remove('is-valid','is-invalid');
} else {
f_pw.classList.remove('was-validated');
f_pw.pw1.classList.add('is-invalid');
f_pw.pw1.classList.remove('is-valid');
if (f_pw.pw1.value.length < 6 || f_pw.pw1.value.length > 16)
{
getId(layer).innerHTML = '영문/숫자/특수문자중 2개 이상의 조합으로 최소 6~16자로 입력하셔야 합니다.';
f_pw.pw1.focus();
f_pw.check_pw1.value = '0';
return false;
}
if (getTypeCheck(f_pw.pw1.value,"abcdefghijklmnopqrstuvwxyz"))
{
getId(layer).innerHTML = '비밀번호가 영문만으로 입력되었습니다.\n비밀번호는 영문/숫자/특수문자중 2개 이상의 조합으로 최소 6자이상 입력하셔야 합니다.';
f_pw.pw1.focus();
f_pw.check_pw1.value = '0';
return false;
}
if (getTypeCheck(f_pw.pw1.value,"1234567890"))
{
getId(layer).innerHTML = '비밀번호가 숫자만으로 입력되었습니다.\n비밀번호는 영문/숫자/특수문자중 2개 이상의 조합으로 최소 6자이상 입력하셔야 합니다.';
f_pw.pw1.focus();
f_pw.check_pw1.value = '0';
return false;
}
f_pw.pw1.classList.add('is-valid');
f_pw.pw1.classList.remove('is-invalid');
getId(layer).innerHTML = '';
f_pw.check_pw1.value = '1';
}
}
function pw2Check() {
var layer = 'pw2-feedback';
if (!f_pw.pw1.value) {
f_pw.pw2.value = '';
f_pw.pw1.focus();
} else {
f_pw.classList.remove('was-validated');
f_pw.pw2.classList.add('is-invalid');
f_pw.pw2.classList.remove('is-valid');
if (f_pw.pw1.value != f_pw.pw2.value)
{
getId(layer).innerHTML = '비밀번호가 일치하지 않습니다.';
f_pw.classList.remove('was-validated');
f_pw.pw2.focus();
f_pw.check_pw2.value = '0';
return false;
}
f_pw.pw2.classList.add('is-valid');
f_pw.pw2.classList.remove('is-invalid');
getId(layer).innerHTML = '';
f_pw.check_pw2.value = '1';
}
}
function idCheck(obj,layer) {
if (!obj.value)
{
eval('obj.form.check_'+obj.name).value = '0';
obj.classList.remove('is-invalid');
getId(layer).innerHTML = '';
}
else {
if (obj.value.length < 4 || obj.value.length > 13 || !getTypeCheck(obj.value,"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890_"))
{
obj.form.check_id.value = '0';
obj.classList.add('is-invalid');
obj.focus();
getId(layer).innerHTML = '4~13자 이내에서 영문 대소문자,숫자,_ 만 사용할 수 있습니다';
return false;
} else {
obj.form.check_id.value = '1';
obj.classList.remove('is-invalid');
}
}
}
$(function () {
putCookieAlert('member_settings_result') // 실행결과 알림 메시지 출력
//비밀번호 변경시 입력항목 유용성 체크
form_pw.find('[name="pw2"]').keyup(function(){
$(this).removeClass('is-invalid is-valid')
});
// 비밀번호 변경 실행
f_pw.addEventListener('submit', function(event) {
event.preventDefault();
event.stopPropagation();
if (f_pw.pw1.value == '') {
f_pw.pw1.focus()
f_pw.pw1.classList.add('is-invalid')
getId('pw1-feedback').innerHTML = '패스워드를 입력해주세요.';
return false;
}
if (f_pw.check_pw1.value == '0') {
f_pw.pw2.value = ''
f_pw.pw2.classList.remove('is-valid','is-invalid');
f_pw.check_pw2.value = '0'
f_pw.pw1.focus();
return false;
}
pw2Check()
if (f_pw.pw2.value == '') {
f_pw.pw2.focus()
f_pw.pw2.classList.add('is-invalid')
getId('pw2-feedback').innerHTML = '패스워드를 한번더 입력해주세요.';
return false;
}
if (f_pw.check_pw1.value == '0' || f_pw.check_pw2.value == '0') {
return false;
}
form_pw.find('[type="submit"]').attr("disabled",true);
f_pw.classList.add('was-validated');
form_pw.find('.form-control').removeClass('is-invalid') //에러이력 초기화
setTimeout(function(){
getIframeForAction(f_pw);
f_pw.submit();
}, 500);
});
//아이디 변경 실행
f_id.addEventListener('submit', function(event) {
event.preventDefault();
event.stopPropagation();
if (f_id.id.value == '') {
f_id.id.focus()
f_id.id.classList.add('is-invalid')
getId('id-feedback').innerHTML = '아이디를 입력해주세요.';
return false;
}
if (f_id.check_id.value == '0') {
f_id.id.value = ''
f_id.id.classList.remove('is-valid','is-invalid');
f_id.check_id.value = '0'
f_id.id.focus();
return false;
}
form_id.find('[type="submit"]').attr("disabled",true);
form_id.find('.form-control').removeClass('is-invalid') //에러이력 초기화
setTimeout(function(){
getIframeForAction(f_id);
f_id.submit();
}, 300);
});
$('[data-toggle="actionIframe"]').click(function() {
getIframeForAction('');
frames.__iframe_for_action__.location.href = $(this).attr("data-url");
});
})
</script>
<?php endif; ?>
</div><!-- /.page-main -->
</div><!-- /.page-wrapper -->
<?php include_once $g['dir_module_skin'].'_footer.php'?>