Files
2023-04-17 11:06:08 +09:00

199 lines
7.0 KiB
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">
<div class="subhead mt-0">
<h2 class="subhead-heading">비밀번호 <?php echo $my['last_pw']?'변경':'등록' ?></h2>
</div>
<form class="card" name="procForm" id="procForm" 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="c" value="<?php echo $c?>">
<input type="hidden" name="m" value="<?php echo $m?>">
<input type="hidden" name="front" value="<?php echo $front?>">
<input type="hidden" name="a" value="settings_main">
<input type="hidden" name="act" value="pw">
<input type="hidden" name="check_pw" value="">
<?php if ($my['last_pw']): ?>
<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="pw" value="" id="user_old_password" required autofocus>
<small class="form-text text-muted"></small>
</div>
</div>
<?php else: ?>
<div class="form-group row">
<label class="col-sm-2 col-form-label">아이디</label>
<div class="col-sm-10 mt-2">
<?php echo $my['id'] ?>
</div>
</div>
<div class="form-group row">
<label class="col-sm-2 col-form-label">이메일</label>
<div class="col-sm-10 mt-2">
<?php echo $my['email']?$my['email']:'미등록' ?>
</div>
</div>
<div class="form-group row">
<label class="col-sm-2 col-form-label">휴대폰</label>
<div class="col-sm-10 mt-2">
<?php echo $my['phone']?$my['phone']:'미등록' ?>
</div>
</div>
<?php endif; ?>
<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="" id="user_new_password" required onblur="pw1Check();">
<div class="invalid-feedback mt-2" 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="" id="user_confirm_new_password" required onblur="pw2Check();">
<div class="invalid-feedback" id="pw2-feedback">다시한번 입력해 주세요.</div>
<small class="form-text text-muted mt-3">비밀번호를 한번 더 입력하세요. 비밀번호는 잊지 않도록 주의하시기 바랍니다.</small>
</div>
</div>
</div><!-- ./card-body -->
<div class="card-footer d-flex justify-content-between align-items-center">
<?php if ($my['last_pw']): ?>
<a href="<?php echo RW('mod=password_reset')?>">패스워드를 분실했어요.</a>
<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><!-- /.page-main -->
</div><!-- /.page-wrapper -->
<script type="text/javascript">
var f = document.procForm;
var pw1 = getId('user_new_password');
var pw2 = getId('user_confirm_new_password');
function pw1Check() {
var layer = 'pw1-feedback';
if (!pw1.value) {
pw1.classList.remove('is-valid','is-invalid');
} else {
f.classList.remove('was-validated');
pw1.classList.add('is-invalid');
pw1.classList.remove('is-valid');
if (f.pw1.value.length < 8 || f.pw1.value.length > 16)
{
getId(layer).innerHTML = '비밀번호는 영문/숫자/특수문자중 2개 이상의 조합으로 최소 8~16자로 입력하셔야 합니다.';
f.pw1.focus();
return false;
}
if (getTypeCheck(f.pw1.value,"abcdefghijklmnopqrstuvwxyz"))
{
getId(layer).innerHTML = '비밀번호가 영문만으로 입력되었습니다.\n비밀번호는 영문/숫자/특수문자중 2개 이상의 조합으로 최소 8자이상 입력하셔야 합니다.';
f.pw1.focus();
return false;
}
if (getTypeCheck(f.pw1.value,"1234567890"))
{
getId(layer).innerHTML = '비밀번호가 숫자만으로 입력되었습니다.\n비밀번호는 영문/숫자/특수문자중 2개 이상의 조합으로 최소 8자이상 입력하셔야 합니다.';
f.pw1.focus();
return false;
}
pw1.classList.add('is-valid');
pw1.classList.remove('is-invalid');
getId(layer).innerHTML = '';
}
}
function pw2Check() {
var layer = 'pw2-feedback';
if (!f.pw1.value) {
f.pw2.value = '';
f.pw1.focus();
} else {
f.classList.remove('was-validated');
pw2.classList.add('is-invalid');
pw2.classList.remove('is-valid');
if (f.pw1.value != f.pw2.value)
{
getId(layer).innerHTML = '비밀번호가 일치하지 않습니다.';
f.classList.remove('was-validated');
f.pw2.focus();
f.check_pw.value = '0';
return false;
}
pw2.classList.add('is-valid');
pw2.classList.remove('is-invalid');
getId(layer).innerHTML = '';
f.check_pw.value = '1';
}
}
$(function () {
$('#procForm').submit( function(e){
e.preventDefault();
e.stopPropagation();
var form = $(this)
var formID = form.attr('id')
var f = document.getElementById(formID);
form.find('[name="form"]').val('#'+formID);
form.find('[type="submit"]').attr("disabled",true);
form.find('.form-control').removeClass('is-invalid') //에러이력 초기화
setTimeout(function(){
getIframeForAction(f);
f.submit();
}, 500);
}
);
})
</script>