본문 바로가기

My Proect/중개폼 프로젝트 - Carblre

14일차 - 로그인, 회원가입 화면 구현

 

 


 

일반로그인, 회원가입 선택 페이지, 회원가입

 

 

signin.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
         pageEncoding="UTF-8" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ include file="../layout/subHeader.jsp" %>

<div class="wrap">
    <section style="margin-bottom: 100px"></section>
    <div class="inner--container">
        <div class="sub--content">
            <!-- 유저와 변호사 선택 버튼 -->
            <div class="common--signup">
                <div class="choose--button">
                    <button onclick="showUserLogin()"><span></span> 일반 로그인</button>
                    <button onclick="showLawyerLogin()"><span></span> 변호사 로그인</button>
                </div>
            </div>

            <!-- 유저 로그인 폼 -->
            <div id="user-login-form" class="login-form infoupdate">
                <h2 class="prih2 user--form">일반 로그인</h2>
                <form action="/user/signIn" method="POST">
                    <input type="text" name="nickName" placeholder="ID" style="margin-bottom: 10px;" required>
                    <input type="password" name="password" placeholder="비밀번호" required>
                    <button class="login-button" type="submit">로그인</button>
                </form>
            </div>

            <!-- 변호사 로그인 폼 -->
            <div id="lawyer-login-form" class="login-form infoupdate">
                <h2 class="prih2 user--form">변호사 로그인</h2>
                <form action="/user/signIn" method="POST">
                    <input type="text" name="nickName" placeholder="ID" style="margin-bottom: 10px;" required>
                    <input type="password" name="password" placeholder="비밀번호" required>
                    <button class="login-button" type="submit">로그인</button>
                </form>
            </div>
            <div class="login-side infoupdate">
                <div onclick="findId()" class="find-info">아이디찾기</div>
                <div> |</div>
                <div onclick="findPass()" class="find-info"> 패스워드 찾기</div>
                <div> |</div>
                <a href="/user/selectSignUp" class="find-info">가입하기</a>
                <!-- <a href="/qr/login">QR로그인</a> -->
            </div>

            <p style="color:#666; margin: 50px auto; text-align: center" class="infoupdate social--line">소셜 로그인</P>

            <div class="social infoupdate">
                <div class="social--wrap">
                    <!-- 카카오 로그인 버튼 -->
                    <a href="https://kauth.kakao.com/oauth/authorize?client_id=74ae415425bf1b53dc8f8dcf38efc2d4&redirect_uri=http://localhost:8080/user/kakao&response_type=code">
                        <img src="/image/kakao.png" alt="카카오 로그인 버튼" lass="image-link">
                    </a>
                    <!-- 네이버 로그인 버튼 -->
                    <a href="/user/naver-login">
                        <img src="/image/naver.png" alt="네이버 로그인 버튼" class="image-link">
                    </a>
                    <!-- 구글 로그인 버튼 -->
                    <a href="https://accounts.google.com/o/oauth2/v2/auth?client_id=638590374988-00j27fgspf85dgtbau9i1c5svh8ciutu.apps.googleusercontent.com&redirect_uri=http://localhost:8080/user/google&response_type=code&scope=https://www.googleapis.com/auth/userinfo.email https://www.googleapis.com/auth/userinfo.profile">
                        <img src="/image/google.png" alt="구글 로그인 버튼" class="image-link">
                    </a>
                </div>
            </div>
        </div>
    </div>
</div>

<script type="text/javascript">
    // 유저 로그인 폼 표시
    function showUserLogin() {
        document.getElementById('user-login-form').style.display = 'block';
        document.getElementById('lawyer-login-form').style.display = 'none';
    }

    // 변호사 로그인 폼 표시
    function showLawyerLogin() {
        document.getElementById('user-login-form').style.display = 'none';
        document.getElementById('lawyer-login-form').style.display = 'block';
    }

    // 페이지 이동
    function findId() {
        window.open("/user/findId", "popupWindow", "width=400,height=500")
    }

    function findPass() {
        window.open("/user/findPass", "popupWindow", "width=400,height=500")
    }

    // alertMessage가 있을 때만 alert 띄우기
    <c:if test="${not empty alertMessage}">
    var message = "${alertMessage}";
    alert(message);
    </c:if>
</script>

<%@ include file="../layout/footer.jsp" %>

 

 

 

signup.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
<%@ include file="../layout/subHeader.jsp" %>

<div class="wrap">
    <section style="margin-bottom: 100px"></section>
    <div class="inner--container">
        <div class="sub--content">
            <h2 class="prih2 user--form">일반 회원가입</h2>

            <div class="terms--into infoupdate" style="box-sizing: border-box; margin-bottom: 10px;">
                <p>
                    카블리(이하 "회사")는 회사가 운영하는 인터넷서비스 pud.kr(이하 "서비스")를 이용하는 이용자의 개인정보를 중요하고, 소중하게 생각하며, "개인정보보호법", "정보통신망
                    이용촉진 및 정보보호에 관한 법률" 등을 준수하고 있습니다.<br>
                    <br>
                    회사는 개인정보처리방침을 통하여 이용자가 제공하는 개인정보가 어떠한 용도와 방식으로 이용되고 있으며, 개인정보보호를 위해 어떠한 조치가 취해지고 있는지 알려드립니다. 만일
                    개인정보처리방침을 개정하는 경우에는 웹사이트 공지사항(또는 개별공지)을 통하여 안내해 드립니다. 본 개인정보처리방침은 관련 법령의 개정이나 회사 내부방침에 의해 변경될 수 있으므로
                    회원 가입시나 사이트 이용시에 수시로 확인하여 주시기 바랍니다.<br>
                    <br>
                    제1조 [수집하는 개인정보의 항목 및 수집방법]<br>
                    고객은 사이트 회원 가입시 회원(이용)약관, 개인정보 수집 및 이용 내용에 대해 「동의함」 버튼을 클릭할 수 있는 절차를 마련하여, 「동의함」 버튼을 클릭하면 개인정보 수집 및
                    이용에 대해 동의한 것으로 봅니다.<br>
                    회사는 이 외에 고객님이 이용한 서면, 문자, 게시판, 메신저 등 다양한 상담채널별 문의와 이벤트 응모시 수집 항목, 목적, 보유기간에 대한 별도 동의를 받아 개인정보를 수집할 수
                    있습니다.<br>
                    회사는 이 법 또는 다른 법률에 특별한 규정이 있는 경우 개인정보를 수집 이용할 수 있습니다.<br>
                    회사는 회원가입, 고객상담, 각종 서비스의 제공을 위하여 최초 회원가입시 다음과 같은 개인정보를 수집 및 이용하고 있습니다.<br><br>

                    [회원가입 및 주문등 필요시점에서 수집하는 정보]<br>
                    구분 수집시기 수집항목 이용목적 보유기간<br>
                    회원 가입시 [필수] 아이디, 비밀번호, 비밀번호 확인 질문, 답변, 이메일, 휴대전화, 회원인증값(모바일인증), 회원인증을 통한 이름, 생년월일, 만 14세 이상 여부<br>
                    [선택] 주소, 일반전화 회원가입시 본인여부 확인, 서비스 이용 및 상담, 공지사항 전달, 이벤트 등 광고성 정보전달 회원탈퇴시 또는 법정 의무 보유기간<br>
                    회원 간편가입(SNS) [필수] 아이디,이름,이메일<br>
                    [선택] 연락처,생년월일 SNS 및 제 3자 계정을 연계하여 간편로그인 서비스 제공 회원탈퇴시 또는 법정 의무 보유기간<br>
                    회원 주문시 [필수] 주문자 정보(이름,주소,휴대전화,이메일), 수취자 정보(이름,주소,휴대전화), 행사정보(결혼,상조,축하), 결제 승인정보<br>
                    [선택] 주문자 일반전화, 수취자 일반전화, 배송 메시지, 해외배송 여부 주문상품의, 결제 및 배송 회원탈퇴시 또는 법정 의무 보유기간<br>
                    비회원 주문시 [필수] 주문자 정보(이름,주소,휴대전화,이메일,주문조회 비밀번호 ,비밀번호 확인), 수취자 정보(이름,주소,휴대전화), 행사정보, 결제 승인정보<br>
                    [선택] 주문자 일반전화, 수취자 일반전화, 배송 메시지, 해외배송 여부 주문상품의, 결제 및 배송 법정 의무 보유기간<br><br>
                    제2조 [쿠키에 의한 개인정보 수집]<br><br>
                    쿠키란?<br>
                    회사는 고객에 대한 정보를 저장하고 수시로 찾아내는 ‘쿠키(cookie)‘를 사용합니다. 쿠키는 웹사이트가 고객의 컴퓨터 브라우저(인터넷 익스플로러 등)에 전송하는 소량의 텍스트
                    파일입니다.<br><br>

                    쿠키의 사용 목적<br><br>
                    개인의 관심 분야에 따라 차별화된 정보를 제공<br>
                    접속빈도 또는 방문시간 등을 분석하고 이용자의 취향과 관심분야를 파악하여 타겟(target) 마케팅 및 서비스 개선의 척도로 활용<br>
                    웹사이트의 이용한 항목들에 대한 정보와 관심있게 둘러본 항목을 추적하여 개인 맞춤 웹서비스 제공<br><br>
                    쿠키의 운영 및 거부<br><br>
                    쿠키는 사용자의 컴퓨터 하드디스크에 저장되며, 사용자의 컴퓨터는 식별하지만 사용자를 개인적으로 식별하지는 않습니다.<br>
                    또한 고객은 웹브라우저에 설정을 통해 모든 쿠키를 허용/거부하거나, 쿠키를 저장될 때마다 확인을 거치도록 할 수 있습니다.<br>
                    단, 쿠키의 저장을 거부할 경우에는 로그인이 필요한 일부 서비스는 이용할 수 없습니다.<br>
                    ※ 쿠키 설정 거부 방법 (Internet Explorer 기준) : 웹브라우저 상단의 [도구] > [인터넷 옵션] > [개인정보] > [고급]에서 원하는 옵션 선택<br><br>

                    제3조 [개인정보의 보유∙이용기간 및 파기]<br><br>
                    고객의 개인정보는 회원탈퇴 등 수집 및 이용목적이 달성되거나 동의철회 요청이 있는 경우 지체없이 파기됩니다.<br>
                    단,「전자상거래 등에서의 소비자보호에 관한 법률」 등 관련법령의 규정에 의하여 다음과 같이 거래 관련 권리 의무 관계의 확인 등을 이유로 일정기간 보유하여야 할 필요가 있을
                    경우에는 그 기간동안 보유합니다.<br><br>

                    「전자상거래 등에서의 소비자보호에 관한 법률」 제6조<br>
                    계약 또는 청약 철회 등에 관한 기록 : 5년<br>
                    대금결재 및 재화 등의 공급에 관한 기록 : 5년<br>
                    소비자의 불만 또는 분쟁처리에 관한 기록 : 3년<br>
                    「통신비밀보호법」 제15조의2<br>
                    방문(로그)에 관한 기록: 1년<br>
                    기타 관련 법령 등<br>
                    회사의 개인정보 파기방법은 다음과 같습니다.<br><br>
                    파기 절차<br><br>
                    회원가입 등을 위해 입력한 정보는 목적이 달성된 후 별도의 DB로 옮겨져(종이의 경우 별도의 서류함 내부 방침 및 기타 관련 법령에 의한 일정기간 저장된 후 파기됩니다.<br>
                    동 개인정보는 법률에 의한 경우가 아니고서는 보유되는 이외의 다른 목적으로 이용되지 않습니다.<br><br>
                    파기 방법<br><br>
                    종이에 출력된 개인정보는 분쇄기로 분쇄하거나 소각을 통하여 파기합니다.<br>
                    전자적 파일 형태로 저장된 개인정보는 기록을 재생할 수 없는 기술적 방법을 사용하여 삭제합니다.<br>
                    회사는 「정보통신망 이용촉진 및 정보보호 등에 관한 법률」 제29조 제2항에 따라 휴면회원(최근 12개월 동안 서비스를 이용하지 아니한 회원)에 대해 회원자격 상실에 대한 안내문을
                    통지하고, 안내문에서 정한 기한 내에 답변이 없을 경우 회원자격을 상실시킬 수 있습니다.<br>
                    이 경우, 휴면회원의 개인정보는 다른 회원의 개인정보와 분리하여 별도로 저장·관리 되며, 분리 저장된 개인정보는 법정보관기간 경과 후 파기하고 있습니다. 파기되지 않은 개인 정보
                    중 해당 이용자의 요청이 있는 경우 고객 정보는 서비스 이용을 재개하는 시점에 다시 제공됩니다.<br><br>

                    제4조 [제3자에 대한 제공]<br><br>
                    회사는 고객의 개인정보를 "제1조 개인정보의 수집항목 및 이용목적 "에서 고지한 범위를 넘어 이용하거나 타인 또는 타기업, 기관에 제공하지 않습니다.<br>
                    단,「전자상거래 등에서의 소비자보호에 관한 법률」 등 관련법령의 규정에 의하여 다음과 같이 거래 관련 권리 의무 관계의 확인 등을 이유로 일정기간 보유하여야 할 필요가 있을
                    경우에는 그 기간동안 보유합니다.
                    <br><br>
                    「전자상거래 등에서의 소비자보호에 관한 법률」 제6조<br><br>
                    계약 또는 청약 철회 등에 관한 기록 : 5년<br>
                    대금결재 및 재화 등의 공급에 관한 기록 : 5년<br>
                    소비자의 불만 또는 분쟁처리에 관한 기록 : 3년<br>
                    다음은 예외로 합니다.<br>
                    관계법령에 의하여 수사상의 목적으로 관계기관으로부터의 요구가 있을 경우<br>
                    통계작성, 학술연구나 시장조사 등을 위하여 특정 개인을 식별할 수 없는 형태로 광고주, 협력사나 연구단체 등에 제공하는 경우<br>
                    기타 관계법령에서 정한 절차에 따른 요청이 있는 경우<br>
                    상기사항에 의해 개인정보를 제공하는 경우에도 본래의 수집∙이용 목적에 반하여 무분별하게 정보가 제공되지 않도록 최대한 노력하겠습니다.<br><br>

                    제5조 [개인정보의 처리 위탁]<br><br>
                    회사는 서비스 이행을 위해 이용자의 개인정보를 위탁 처리할 경우 위탁하는 내용 및 수탁자를 고지하고, 위탁계약 시 개인정보가 안전하게 관리될 수 있도록 필요한 사항을 규정해 관련
                    법규를 준수하고 이를 감독합니다. 회사의 개인정보 위탁처리 기관 및 위탁업무 내용은 다음과 같습니다.
                    <br><br>
                    제공업체 제공정보 제공목적 보유 및 이용기간<br><br>
                    문자케이알 휴대폰번호 문자발송, 카카오 알림톡 서비스 해당업무 처리 완료시까지<br>
                    코리아크레딧뷰로(주) 이름, 휴대폰번호, 통신사, 생년월일, 성별 아이핀인증, 휴대폰본인인증 해당업무 처리 완료시까지<br>
                    (주)다우데이타 이름, 이메일, 휴대폰번호, 생년월일, 신용카드명, 카드번호, 유효기간 카드, 휴대폰, 계좌이체, 결제대행 해당업무 처리 완료시까지<br><br>
                    제6조 [개인정보의 열람∙정정 및 동의철회]<br><br>
                    고객께서는 언제든지 등록되어 있는 고객의 개인정보를 열람하거나 정정하실 수 있습니다.<br>
                    개인정보 열람 및 정정을 하고자 할 경우에는 『마이페이지』 항목을 클릭하여 직접 열람 또는 정정하거나,<br>
                    개인정보보호 담당자에게 서면, 전화 또는 이메일로 연락하시면 지체 없이 조치하겠습니다.<br>
                    회원가입 등을 통해 개인정보의 수집, 이용, 제공에 대해 고객께서 동의하신 내용을 고객께서는 언제든지 철회하실 수 있습니다.<br>
                    동의철회는 홈페이지 첫 화면의 『마이페이지』 항목에서 하시거나 개인정보보호 담당자에게 서면, 전화, 이메일 등으로 연락하시면 즉시 개인정보의 삭제 등 필요한 조치를
                    하겠습니다.<br>
                    동의 철회를 하고 개인정보를 파기하는 등의 조치를 취한 경우에는 그 사실을 고객께 지체 없이 통지하도록 하겠습니다.<br><br>

                    제7조 [개인정보보호를 위한 기술 및 관리적 대책]<br><br>
                    회원의 개인정보는 기본적으로 회원의 아이디와 비밀번호에 의하여 보호되며, 회사는 회원의 개인정보를 처리함에 있어 개인정보가 유출, 변조 또는 훼손되지 않도록 안전성을 확보하기
                    위하여 다음과 같은 기술적/관리적 대책을 마련하고 있습니다.
                    <br><br>
                    기술적 대책<br><br>
                    회사는 개인정보처리시스템 등의 접근권한 관리를 통해 외부로부터의 무단 접근을 통제하고 있으며, 중요 데이터는 저장 및 전송시 암호화하여 사용하는 등 안전하게 저장•관리하고
                    있습니다.<br>
                    회사는 해킹이나 악성코드 등에 의한 개인정보 유출 및 훼손을 방지하기 위하여 보안프로그램을 주기적으로 갱신•점검하고 있습니다.<br>
                    회사는 결제 등의 경우에 있어 네트워크상에서 개인정보를 안전하게 전송할 수 있도록 보안장치를 채택하고 있습니다.<br>
                    회사는 해킹 등에 의한 정보의 유출을 방지하기 위해 침입차단시스템(방화벽)을 이용하여 외부로부터의 무단 접근을 통제하고 있으며, 기타 시스템적인 보안성을 확보하기 위해 가능한 모든
                    기술적 장치를 갖추려 노력하고 있습니다.<br><br>
                    관리적 대책<br><br>
                    회사는 회원 본인의 비밀번호 요청 등에 의해 개인정보를 다룰 때 가능한 최선의 방법으로 본인임을 확인하고 안전하게 정보가 처리될 수 있도록 최선을 다합니다.<br>
                    회사는 개인정보에 대한 접근권한을 개인정보관리책임자 등 개인정보관리업무를 수행하는 자, 기타 업무상 개인정보의 처리이 불가피한 자로 제한하며, 개인정보를 처리하는 직원에 대한 수시
                    교육을 통하여 개인정보처리방침의 준수를 항상 강조하고 있습니다.<br>
                    위와 같은 회사의 노력 이외에 회원은 아이디와 비밀번호, 주민등록번호 등 개인정보가 인터넷 상에 노출되거나 타인에게 유출되지 않도록 주의하여야 합니다.<br>
                    회원 본인의 부주의나 관리소홀로 아이디와 비밀번호 등 개인정보가 유출되었다면 이에 대해서 회사는 책임을 지지 않습니다.<br>
                    따라서, 회원의 아이디와 비밀번호는 반드시 본인만 사용하시고, 비밀번호를 자주 바꿔주시는 것이 좋으며,<br>
                    비밀번호는 영문자, 숫자를 혼합하여 타인이 유추하기 어려운 번호를 사용하는 것이 좋습니다.
                    또한 서비스의 이용을 마친 후에는 항상 로그아웃을 하여 주시고 웹 브라우저를 종료하는 것이 좋습니다.<br>
                    특히, 다른 사람과 컴퓨터를 공유하거나, 공공장소에서 이용하는 경우에 개인정보의 보안을 위해서는 이와 같은 절차가 더욱 필요합니다.<br><br>
                    제8조 [이용자의 의무]<br><br>
                    고객님의 개인정보를 최신의 상태로 정확하게 입력하여 불의의 사고를 예방해 주시기 바랍니다. 입력한 부정확한 정보로 인해 발생하는 사고의 책임은 이용자 자신에게 있으며 타인 정보의
                    도용 등 허위정보를 입력할 경우 회사 회원자격이 상실되거나 회사 홈페이지 이용이 정지될 수 있습니다.<br>
                    이용자 개인정보와 관련한 아이디(ID)의 비밀번호에 대한 보안유지책임은 해당 이용자 자신에게 있습니다. 회사는 비밀번호에 대해 어떠한 방법으로도 이용자에게 직접적으로 질문하는
                    경우는 없으므로 타인에게 비밀번호가 유출되지 않도록 각별히 주의하시기 바랍니다.<br>
                    고객님은 개인정보를 보호받을 권리와 함께 스스로를 보호하고 타인의 정보를 침해하지 않을 의무도 가지고 있습니다. 게시물을 포함한 타인의 개인정보를 훼손하지 않도록 유의해 주십시오.<br>
                    만약 이 같은 책임을 다하지 못하고 타인의 정보를 훼손할 시에는 관계 법령 등에 의해 처벌받을 수 있습니다.특히, 공공장소에서 온라인상에서 접속해 있을 경우에는 더욱 유의하셔야
                    합니다.<br>
                    제9조 [14세 미만 아동의 개인정보보호]<br><br>
                    회사는 온라인 환경에서 어린이의 개인정보를 보호하는 것 역시 중요한 일이라고 생각하고 있으며, 회사는 법정대리인의 동의가 필요한 만 14세 미만 아동의 회원가입은 받고 있지
                    않습니다.<br>

                    이용자 및 법정대리인의 권리와 그 행사방법<br>

                    정보주체는 회사에 대해 언제든지 다음 각 호의 개인정보 보호 관련 권리를 행사할 수 있습니다.<br><br>


                    KISA 개인정보보호 => http://privacy.kisa.or.kr / (국번 없이) 118<br>
                    경찰청 사이버안전국 => http://cyberbureau.police.go.kr (국번없이) 182<br>
                    대검찰청 사이버수사과 => http://spo.go.kr / (국번없이) 1301<br>
                    개인정보 침해신고센터 (한국인터넷 진흥원 운영) => http://privacy.kisa.or.kr / (국번없이) 118<br>
                    개인정보 분쟁조정위원회 (한국인터넷 진흥원 운영) => http://www.kopico.go.kr / 1833-6972<br>
                    제11조 [고지의 의무]<br>
                    본 개인정보처리방침은 정부나 회사의 정책 또는 보안기술의 변경에 따라 내용의 추가, 삭제 및 수정될 수 있으며, 이 경우 개정 7일 이전 홈페이지의 ‘공지’란을 통해 고지할
                    것입니다.
                    <br><br>
                    이 개인정보 처리방침의 공고 및 시행일자는 아래와 같습니다.<br>
                    - 공고일자 : 2024년 11월 01일<br>
                </p>
            </div>
            <div class="checkbox infoupdate">
                <label>동의 (*필수)<input type="checkbox" required></label>
            </div>

            <form action="/user/signUp" method="POST" class="infoupdate">
                <!-- 사용자 이름 -->
                <div class="form-group">
                    <label for="userName">이름 </label>
                    <input type="text" class="form-control" id="userName" placeholder="이름을 입력하세요." name="userName"
                           required>
                </div>

                <div class="form-group">
                    <label for="nickName">아이디</label>
                    <input type="text" class="form-control" id="nickName" placeholder="아이디를 입력하세요." name="nickName"
                           required>
                    <button type="button" class="check--btn" id="checkId" onclick="checkDuplicate()">
                        중복 확인
                    </button>
                </div>

                <div class="form-group">
                    <label for="password">비밀번호</label>
                    <input type="password" class="form-control" id="password" placeholder="비밀번호를 입력하세요." name="password"
                           oninput="pwCheck()" minlength="8" maxlength="20" required>
                    <p class="pw--info">
                        8자 이상 20자 이하 입력 (공백 제외) <br>영문/숫자/특수문자(!@#$%^&*)포함
                    </p>
                </div>

                <div class="form-group">
                    <label for="passwordCheck">비밀번호 확인
                        <span id="pwConfirm"></span>
                    </label>
                    <input type="password" class="form-control" id="passwordCheck" placeholder="비밀번호를 한 번 더 입력하세요."
                           name="passwordCheck" oninput="pwCheck()" minlength="8" maxlength="20" required>
                </div>

                <!-- 이메일 입력란 -->
                <div class="form-group">
                    <label for="email">이메일</label>
                    <input type="email" class="form-control" id="email" placeholder="example@carblre.com" name="email"
                           value="" required>
                    <!-- 이메일 인증코드 발송 -->
                    <button type="button" class="check--btn" id="emailCode" onclick="sendValidate()">발송</button>
                    <button type="button" class="check--btn" id="checkValidate" onclick="checkValidate()"
                            disabled="disabled" style="cursor: pointer;">인증 확인
                    </button>
                </div>

                <!-- 제출 버튼 -->
                <button type="submit" id="signUp">가입하기</button>
            </form>
        </div>
    </div>
</div>


<script>

    function sendValidate() {
        const email = document.getElementById('email').value;
        console.log('Email : ' + email);

        fetch('http://localhost:8080/send-mail/email?email=' + email)
            .then(response => {
                if (!response.ok) {
                    return response.json().then(data => {
                        throw new Error(data.message || '알 수 없는 에러가 발생했습니다.');
                    });
                }
                // 응답을 JSON 형식으로 변환
                return response.json();
            })
            .then(data => {
                // 서버로부터 받은 응답 데이터를 처리
                console.log('Success:', data);
                // EmailController에서 보낸 response를 alert으로 표시
                alert(data.message);
                const sendBtn = document.getElementById('emailCode');
                const checkValidate = document.getElementById('checkValidate');
                sendBtn.disabled = true;
                checkValidate.disabled = false;
            })
            .catch(error => {
                console.log('Error:', error);
                // 에러 메시지를 alert으로 표시
                alert(error.message);
            });
    }


    // '중복 확인' 버튼을 클릭하면 실행됩니다.
    function checkDuplicate() {
        const userId = document.getElementById('nickName').value;
        console.log('userId : ', userId);

        fetch(`http://localhost:8080/user/checkId?userId=` + userId)
            .then(response => {
                if (!response.ok) {
                    return response.json().then(data => {
                        throw new Error(data.message || '알 수 없는 에러가 발생했습니다.');
                    });
                }
                return response.json();  // 응답을 JSON 형식으로 변환
            })
            .then(data => {
                if (data.message) {
                    alert("사용 가능한 아이디입니다.");
                    const result = confirm("해당 아이디를 사용하시겠습니까?");

                    if (result) {
                        const inputUserId = document.getElementById('nickName').value;
                        inputUserId.disabled = true;
                    }

                } else {
                    alert("사용 중인 아이디입니다.");
                }
            })
            .catch(error => {
                console.log('Error:', error);
                alert(error.message);
            });
    }


    function checkValidate() {

        fetch('http://localhost:8080/send-mail/checkValidate')
            .then(response => {
                if (!response.ok) {
                    return response.json().then(data => {
                        throw new Error(data.message || '알 수 없는 에러가 발생했습니다.');
                    });
                }
                return response.json();  // 응답을 JSON 형식으로 변환
            })
            .then(data => {
                // 서버로부터 받은 응답 데이터를 처리
                console.log('Success:', data);
                // 서버에서 보낸 메시지를 alert으로 표시
                alert(data.message);
                const signUpBtn = document.getElementById('signUp');
                const emailInput = document.getElementById('email');
                const checkValidateBtn = document.getElementById('checkValidate');

                signUpBtn.disabled = false;
                checkValidateBtn.disabled = true;
                emailInput.readOnly = true;

            })
            .catch(error => {
                console.log('Error:', error);
                // 에러 메시지를 alert으로 표시
                alert(error.message);
            });
    }


    const autoHyphen = (target) => {
        target.value = target.value
            .replace(/[^0-9]/g, '')
            .replace(/^(\d{0,3})(\d{0,4})(\d{0,4})$/g, "$1-$2-$3").replace(/(\-{1,2})$/g, "");
    }

</script>
<%@ include file="../layout/footer.jsp" %>

 

 

selectSignup.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
         pageEncoding="UTF-8" %>
<%@ include file="../layout/subHeader.jsp" %>

<div class="wrap">
    <section style="margin-bottom: 100px"></section>
    <div class="inner--container">
        <div class="sub--content">
            <h2 class="prih2 user--form">회원가입</h2>
            <div class="select-signup infoupdate">

                <div class="common--signup">
                    <div class="signup-btn" style="margin-bottom: 15px;" onclick="signUpUserId()"> 일반 가입하기</div>
                    <div class="signup-btn" onclick="signUpLawyerId()"> 변호사 가입하기</div>
                </div>
            </div>
        </div>
    </div>
</div>
<script type="text/javascript">

    function signUpUserId() {
        window.location.href = "/user/signUp";  // window.location.href는 값으로 할당
    }

    function signUpLawyerId() {
        window.location.href = "/user/lawyerSignUp";  // window.location.href는 값으로 할당
    }
</script>

<%@ include file="../layout/footer.jsp" %>
728x90