diff --git a/config/member.php b/config/member.php index bf2c54f..c334ea9 100644 --- a/config/member.php +++ b/config/member.php @@ -20,6 +20,11 @@ class Member { return $stmt->rowCount() ? true : false; } + // 이메일 형식 체크 + public function email_format_check($email) { + return filter_var($email, FILTER_VALIDATE_EMAIL); + } + public function email_exists($email) { $sql = "SELECT * FROM member WHERE email=:email"; $stmt = $this->conn->prepare($sql); diff --git a/js/member_input.js b/js/member_input.js index b12bb47..5c1c1d7 100644 --- a/js/member_input.js +++ b/js/member_input.js @@ -78,71 +78,91 @@ document.addEventListener("DOMContentLoaded", () => { } else if (data.result == 'empty_id') { alert('이메일이 입력되지 않았습니다.') f_email.focus() + } else if(data.result == 'email_format_wrong') { + alert('이메일 형식이 맞지 않습니다.') + f_email.focus() } } } }) +// 비밀번호 규칙 검사용 정규식 +// - 최소 8자 +// - 소문자 1개 이상 +// - 대문자 1개 이상 +// - 숫자 1개 이상 +// - 특수문자 1개 이상 +const passwordRule = /^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[\W_]).{8,}$/; - // 가입 버튼 클릭 시 비밀번호 일치 체크 - const btn_submit = document.querySelector("#btn_submit") - btn_submit.addEventListener("click", () => { - const f = document.input_form - if (f.id.value == '') { - alert('아이디를 입력해 주세요.') - f.id.focus() - return false - } - // 아이디 중복 체크 여부 - if (f.id_chk.value == 0) { - alert('아이디 중복확인이 필요합니다.') - return false - } - // 비밀번호 입력 여부 - if (f.password.value == '') { - alert('비밀번호를 입력하세요.') - f.password.focus() - return false - } - if (f.password2.value == '') { - alert('비밀번호 확인이 필요합니다.') - f.password2.focus() - return false - } +// 가입 버튼 클릭 시 비밀번호 일치 체크 +const btn_submit = document.querySelector("#btn_submit"); +btn_submit.addEventListener("click", () => { + const f = document.input_form; - // 비밀번호 일치 여부 - if (f.password.value != f.password2.value) { - alert('비밀번호가 일치하지 않습니다.') - //f.password.value = '' - f.password2.value = '' - f.password2.focus() - return false - } + if (f.id.value.trim() === '') { + alert('아이디를 입력해 주세요.'); + f.id.focus(); + return false; + } - // 이름 등록 여부 - if (f.name.value == '') { - alert('이름을 입력해 주세요.') - f.name.focus() - return false - } + // 아이디 중복 체크 여부 + if (f.id_chk.value === "0") { + alert('아이디 중복확인이 필요합니다.'); + return false; + } - // 이메일 등록 여부 - if (f.email.value == '') { - alert('이메일을 입력해 주세요') - f.email.focus() - return false - } + // 비밀번호 입력 여부 + if (f.password.value === '') { + alert('비밀번호를 입력하세요.'); + f.password.focus(); + return false; + } + if (f.password2.value === '') { + alert('비밀번호 확인이 필요합니다.'); + f.password2.focus(); + return false; + } - // 이메일 중복 체크 여부 - if(f.email_chk.value == 0) { - alert('이메일 중복확인이 필요합니다.') - return false - } + // ★ 비밀번호 규칙 검사 추가 (여기) + if (!passwordRule.test(f.password.value)) { + alert('비밀번호는 8자 이상이며, 대문자/소문자/숫자/특수문자를 모두 포함해야 합니다.'); + f.password.focus(); + return false; + } - f.submit() + // 비밀번호 일치 여부 + if (f.password.value !== f.password2.value) { + alert('비밀번호가 일치하지 않습니다.'); + // f.password.value = ''; + f.password2.value = ''; + f.password2.focus(); + return false; + } + + // 이름 등록 여부 + if (f.name.value.trim() === '') { + alert('이름을 입력해 주세요.'); + f.name.focus(); + return false; + } + + // 이메일 등록 여부 + if (f.email.value.trim() === '') { + alert('이메일을 입력해 주세요'); + f.email.focus(); + return false; + } + + // 이메일 중복 체크 여부 + if (f.email_chk.value === "0") { + alert('이메일 중복확인이 필요합니다.'); + return false; + } + + f.submit(); +}); - }) // 우편번호 찾기 diff --git a/member_input.php b/member_input.php index c04810b..27c472c 100644 --- a/member_input.php +++ b/member_input.php @@ -29,7 +29,7 @@ include 'header.php';