ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [ERMaster] shoppingmall - find ID, PW
    WEB/ERMaster 2022. 9. 10. 12:27

     
    function find_account(){
    	var url="shop.do?command=findAccount";
    	var opt="toolbar=no, menubar=no, scrollbars=no, resizable=no, "
    					+"width=700, height=500, top=300, left=300";
    	window.open(url , "Find Id/Pw", opt);
    }
    else if(command.equals("findAccount")) ac=new FindAccountAction();
    package com.sam.shop.controller.action;
    
    import java.io.IOException;
    
    import javax.servlet.ServletException;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    
    public class FindAccountAction implements Action {
    
    	@Override
    	public void execute(HttpServletRequest request, 
    			HttpServletResponse response) 
    			throws ServletException, IOException {
    		
    		String url="member/findAccount.jsp";
    		request.getRequestDispatcher(url).forward(request,response);
    	}
    }
    <%@ page language="java" contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8"%>
    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="UTF-8">
    <title>Insert title here</title>
    <link href="css/shopping.css" rel="stylesheet">
    </head>
    <body>
    <center><h2>아이디 찾기 / 비밀번호 찾기</h2></center>
    <form>
    <table align="center" bgcolor="black" cellspacing="1" width="400">
    	<tr align="center" bgcolor="#FDE8FF" height="200">
    		<td width="230"><h3>아이디 찾기</h3><br>
    			<input type="button" class="submit" value="이동" 
    				onClick="location.href='shop.do?command=findIdForm'">
    		</td>
    		<td width="230"><h3>비밀번호 찾기</h3><br>
    			<input type="button"  class="submit" value="이동" 
    				onClick="location.href='shop.do?command=findPwForm'">
    		</td>
    	</tr>
    </table>
    </form>
    </body>
    </html>

    아이디 찾기

    else if(command.equals("findIdForm")) ac=new FindIdFormAction();
    package com.sam.shop.controller.action;
    
    import java.io.IOException;
    
    import javax.servlet.ServletException;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    
    public class FindIdFormAction implements Action {
    
    	@Override
    	public void execute(HttpServletRequest request, 
    			HttpServletResponse response) 
    			throws ServletException, IOException {
    
    		String url="member/findIdForm.jsp";
    		request.getRequestDispatcher(url).forward(request,response);
    	}
    }
    <%@ page language="java" contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8"%>
    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="UTF-8">
    <title>Insert title here</title>
    <link href="css/shopping.css" rel="stylesheet">
    </head>
    <body>
    <center><h2>아이디 찾기</h2></center>
    <form method="post" name="frm" action="shop.do">
    	<input type="hidden" name="command" value="findIdStep1">
    	<table align="center" bgcolor="black" cellspacing="1" 
               width="400">
    		<tr align="center" bgcolor="#FDE8FF">
    			<td width="430"><h3>성명
    				<input type="text" name="name" value="${name}">
    			</h3></td></tr>
    		<tr align="center" bgcolor="#FDE8FF">
    			<td width="430"><h3>전화번호
    				<input type="text" name="phone" value="${phone}">
    			</h3></td></tr>
    		<tr align="center" bgcolor="#FDE8FF">
    			<td width="430"><h3>
    				<input type="submit"value="인증번호 전송"></h3>
    					${msg}</td></tr>
    	</table>
    </form>
    </body>
    </html>

     

    아이디 찾기 실행

    else if(command.equals("findIdStep1")) ac=new FindIdStep1Action();
    package com.sam.shop.controller.action;
    
    import java.io.IOException;
    
    import javax.servlet.ServletException;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    
    import com.sam.shop.dao.MemberDao;
    import com.sam.shop.dto.MemberVO;
    
    public class FindIdStep1Action implements Action {
    
    	@Override
    	public void execute(HttpServletRequest request, 
    		HttpServletResponse response) 
    		throws ServletException, IOException {
    // 이 단계에서 인증번호를 해당 휴대폰 번호에 문자로 전송하고
    // 다음 페이지에서 사용자에게 입력받도록 화면을 구성
    		
    		String url="member/findIdForm.jsp";
    		String name=request.getParameter("name");
    		String phone=request.getParameter("phone");
    		
    		MemberDao mdao=MemberDao.getInstance();
    		MemberVO mvo=mdao.getMemberByname(name,phone);
    		// 이름과 전화번호로 검색해서 일치하는 회원이 없으면 
    		// 인증번호 입력창으로 이동
    		
    		request.setAttribute("name", name);
    		request.setAttribute("phone", phone);
    		
    		if(mvo==null) {
    			request.setAttribute("msg",
                        "해당이름과 전화번호의 회원이 없습니다");
    		}else {
    			request.setAttribute("MemberVO", mvo);
    			url="member/findIdconfirmNumber.jsp";
    		}
    		request.getRequestDispatcher(url).forward(request,response);
    	}
    }

     

    MemberDao에 getMemberByname 생성

    public MemberVO getMemberByname(String name, String phone) {
    	MemberVO mvo=null;
    	String sql="select *from member where name=? and phone=?";
    	con = Dbman.getConnection();
    	try {
    		pstmt = con.prepareStatement(sql);
    		pstmt.setString(1, name);
    		pstmt.setString(2, phone);
    		rs=pstmt.executeQuery();
    		if(rs.next()) {
    			mvo=new MemberVO();
    			mvo.setId(rs.getString("id"));
    			mvo.setName(rs.getString("name"));
    			mvo.setPhone(rs.getString("phone"));
    		}
    	} catch (SQLException e) {	e.printStackTrace(); 		
    	} finally { 	Dbman.close(con, pstmt, rs); }	
    	return mvo;
    }

     

    인증번호 입력 페이지

    <%@ page language="java" contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8"%>
    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="UTF-8">
    <title>Insert title here</title>
    <link href="css/shopping.css" rel="stylesheet">
    </head>
    <body>
    <h2>ID 찾기</h2>
    
    <form method="post" name="frm" action="shop.do">
    	<input type="hidden" name="command" value="findIdStep2">
    	<table align="center" bgcolor="black" cellspacing="1" 
    				width="400">
    		<tr align="center" bgcolor="#FDE8FF">
    			<td width="430"><h3>성명: ${name }</h3>
    				<input type="hidden" name="name" value="${name}">
    			</td></tr>
    		<tr align="center" bgcolor="#FDE8FF">
    			<td width="430"><h3>전화번호: ${phone }</h3>
    				<input type="hidden" name="phone" value="${phone}">
    				<input type="hidden" name="id" 
    							value="${MemberVO.id }">
    			</td></tr>
    		<tr align="center" bgcolor="#FDE8FF">
    			<td width="430"><h3>인증번호
    				<input type="text" name="confirmNum"></h3>
    				전송받을 번호를 입력하세요<br>${msg }<br>
    				<input type="submit" value="인증번호 확인"></h3>
    				</td></tr>
    	</table>
    </form>
    </body>
    </html>

     

    인증번호 확인

    else if(command.equals("findIdStep2")) ac=new FindIdStep2Action();
    package com.sam.shop.controller.action;
    
    import java.io.IOException;
    
    import javax.servlet.ServletException;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    
    import com.sam.shop.dto.MemberVO;
    
    public class FindIdStep2Action implements Action {
    
    	@Override
    	public void execute(HttpServletRequest request, 
    			HttpServletResponse response) 
    			throws ServletException, IOException {
    		
    		String confirmNum=request.getParameter("confirmNum");
    		
    		MemberVO mvo=new MemberVO();
    		mvo.setId(request.getParameter("id"));
    		mvo.setName(request.getParameter("name"));
    		mvo.setPhone(request.getParameter("phone"));
    		
    		request.setAttribute("name", mvo.getName());
    		request.setAttribute("phone", mvo.getPhone());
    		request.setAttribute("id", mvo.getId());
    		request.setAttribute("MemberVO", mvo);
    		
    		String url="member/viewId.jsp";
    		if(!confirmNum.equals("0000")) {
    			request.setAttribute("msg", "인증번호가 맞지 않습니다");
    			url="member/findIdconfirmNumber.jsp";
    		}
    		request.getRequestDispatcher(url).forward(request,response);
    	}
    }
    <%@ page language="java" contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8"%>
    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="UTF-8">
    <title>Insert title here</title>
    <link href="css/shopping.css" rel="stylesheet">
    <script src="member/member.js"></script>
    </head>
    <body>
    <center><h2>아이디 찾기</h2></center>
    	<table align="center" bgcolor="black" cellspacing="1" 
               width="400">
    		<tr align="center" bgcolor="#FDE8FF">
    			<td width="430"><h3>성명: ${name}
    			</td></tr>
    		<tr align="center" bgcolor="#FDE8FF">
    			<td width="430"><h3>전화번호: ${phone }
    			</td></tr>
    		<tr align="center" bgcolor="#FDE8FF">
    			<td width="430">
    			<h3>조회한 회원의 아이디는 ${id}입니다</h3>
    				<input type="button" class="submit" 
                         value="로그인창으로" onClick="move_login();">
    				<input type="button" class="submit" 
                       value="비밀번호찾기"
    	               onClick="location.href='shop.do?command=findPwForm$id=${id}'">
    			</td></tr>
    	</table>
    </body>
    </html>
    function move_login(){
    	opener.location.href='shop.do?command=loginForm';
    	self.close();
    }

    비밀번호 찾기

    else if(command.equals("findPwForm")) ac=new FindPwFormAction();
    package com.sam.shop.controller.action;
    
    import java.io.IOException;
    
    import javax.servlet.ServletException;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    
    public class FindPwFormAction implements Action {
    
    	@Override
    	public void execute(HttpServletRequest request, 
    			HttpServletResponse response)
    			throws ServletException, IOException {
    		String url="member/findPwForm.jsp";
    		
    		request.setAttribute("id", request.getParameter("id"));
    		request.getRequestDispatcher(url).forward(request,response);
    	}
    }
    <%@ page language="java" contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8"%>
    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="UTF-8">
    <title>Insert title here</title>
    <link href="css/shopping.css" rel="stylesheet">
    </head>
    <body>
    <h2>비밀번호 찾기</h2>
    <form method="post" name="frm" action="shop.do">
    	<input type="hidden" name="command" value="findPwStep1">
    	<table align="center" bgcolor="black" cellspacing="1" 
    				width="400">
    		<tr align="center" bgcolor="#FDE8FF">
    			<td width="430"><h3>아이디
    				<input type="text" name="id" value="${id}">
    			</h3></td></tr>
    		<tr align="center" bgcolor="#FDE8FF">
    			<td width="430"><h3>성명
    				<input type="text" name="name" value="${name }">
    			</h3></td></tr>
    		<tr align="center" bgcolor="#FDE8FF">
    			<td width="430"><h3>전화번호
    				<input type="text" name="phone" value="${phone }">
    			</h3></td></tr>
    		<tr align="center" bgcolor="#FDE8FF">
    			<td width="430"><h3>
    				<input type="submit" name="phone" 
    							value="인증번호 전송">
    			</h3>${msg}</td></tr>
    		</table>
    </form>
    </body>
    </html>

     

    비밀번호 찾기 실행

    else if(command.equals("findPwStep1")) ac=new FindPwStep1Action();
    package com.sam.shop.controller.action;
    
    import java.io.IOException;
    
    import javax.servlet.ServletException;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    
    import com.sam.shop.dao.MemberDao;
    import com.sam.shop.dto.MemberVO;
    
    public class FindPwStep1Action implements Action {
    
    	@Override
    	public void execute(HttpServletRequest request, 
    			HttpServletResponse response) 
    			throws ServletException, IOException {
    
    		// 아이디 이름 전화로 조회한 회원이 있으면 
            // 인증번호 입력창으로
    		// 없으면 다시 이름 전화 아이디 입력 창으로 이동
    		String id=request.getParameter("id");
    		String name=request.getParameter("name");
    		String phone=request.getParameter("phone");
    		
    		MemberDao mdao=MemberDao.getInstance();
    		// 아이디 이름 전화번호가 한번에 일치해야 
            // 검색결과가 리턴되는 메서드 생성&호출
    		// MemberVO mvo=
    		//        mdao.getMemberByNamePhoneId(id,name,phone);
    		// 이 메서드는 해당 회원을 검색을 할 수는 있지만 
            // 정보가 틀렸을 때
    		// 어떤 항목이 잘못되었는지 알 수가 없음
    		// 이름과 전화번호로 검색해서 일치하는 회원이 없으면 
    		// 인증번호 입력창으로 이동
    		
    		String url="member/findPwForm.jsp";
    		request.setAttribute("id",id);
    		request.setAttribute("name",name);
    		request.setAttribute("phone",phone);
    		
    		MemberVO mvo=mdao.getMember(id);
    		if(mvo==null){
    			request.setAttribute("msg", "id가 일치하지 않습니다");
    		} else if(!name.equals(mvo.getName())){
    			request.setAttribute("msg","이름이 일치하지 않습니다");
    		} else if(!phone.equals(mvo.getPhone())){
    			request.setAttribute("msg","전화번호가 일치하지 않습니다");
    		} else {
    			url="member/findPwConfirmNumber.jsp"; 
    		}
    		request.getRequestDispatcher(url).forward(request,response);
    	}
    }
    <%@ page language="java" contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8"%>
    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="UTF-8">
    <title>Insert title here</title>
    <link href=css/shopping.css rel="stylesheet">
    </head>
    <body>
    <h2>Id/Pw 찾기</h2>
    <form method="post" name="frm" action="shop.do">
    <input type="hidden" name="command" value="findPwStep2">
    <table align="center" bgcolor="black" cellspacing="1" 
    			width="400">
    	<tr align="center" bgcolor="#FDE8FF"><td width="430">
    		<h3>아이디: ${id }</h3>
    			<input type="hidden" name="id" 
                            value="${id }"></td></tr>
    	<tr align="center" bgcolor="#FDE8FF"><td width="430">
    		<h3>성명: ${name }</h3>
    			<input type="hidden" name="name" 
    						value="${name }"></td></tr>
    	<tr align="center" bgcolor="#FDE8FF"><td width="430">
    		<h3>전화번호: ${phone }</h3>
    			<input type="hidden" name="phone"
    						value="${phone }"></td></tr>
    	<tr align="center" bgcolor="#FDE8FF"><td width="430">
    		<h3>인증번호: ${phone }
    			<input type="text" name="confirmNum"></h3>
    			전송받을 인증번호를 입력하세요
    			<input type="submit" value="인증번호 확인">
    			</td></tr>
    </table>
    </form>
    </body>
    </html>

     

    인증번호 확인 후

    else if(command.equals("findPwStep2")) ac=new FindPwStep2Action();
    package com.sam.shop.controller.action;
    
    import java.io.IOException;
    
    import javax.servlet.ServletException;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    
    public class FindPwStep2Action implements Action {
    
    	@Override
    	public void execute(HttpServletRequest request, 
    			HttpServletResponse response) 
    			throws ServletException, IOException {
    		
    		String confirmNum=request.getParameter("confirmNum");
    		
    		String id=request.getParameter("id");
    		String name=request.getParameter("name");
    		String phone=request.getParameter("phone"); //파라미터 저장
    		
    		request.setAttribute("id", id);
    		request.setAttribute("name", name);
    		request.setAttribute("phone", phone); 
    		// 그들을 리퀘스트에 담고
    		// findPwconfirmNumber.jsp로 이동하든
    		// resetPw.jsp로 이동하든 
    		// 위 세개의 항목은 모두 필요하므로 리퀘스트에 담아둠
    		
    		String url="member/findPwConfirmNumber.jsp";
    		if(confirmNum.equals("0000")) {
    			url="member/resetPw.jsp";
    		}
    		request.getRequestDispatcher(url).forward(request,response);
    	}
    }
    
    <%@ page language="java" contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8"%>
    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="UTF-8">
    <title>Insert title here</title>
    <link href="css/shopping.css" rel="stylesheet">
    <script src="member/member.js"></script>
    </head>
    <body>
    <h2>비밀번호 재성절</h2>
    <form method="post" name="frm" action="shop.do">
    	<input type="hidden" name="command" value="resetPw">
    	<input type="hidden" name="id" value="${id }">
    	<table align="center" bgcolor="black" cellspacing="1"
    				width="400">
    		<tr align="center" bgcolor="#FDE8FF"><td width="430">
    			<h3>비밀번호
    				<input type="password" name="pwd">
    			</h3></td></tr>
    		<tr align="center" bgcolor="#FDE8FF"><td width="430">
    			<h3>비밀번호확인
    				<input type="password" name="pwd_chk">
    			</h3></td></tr>
    		<tr align="center" bgcolor="#FDE8FF"><td width="430">
    			<h3>
    				<input type="submit" value="비밀번호 재설정" 
    					onClick="return resetPw();">
    			</h3></td></tr>
    	</table>
    </form>
    </body>
    </html>
    function resetPw(){
    	if( document.frm.pwd.value==""){
    		alert("비밀번호을 입력해 주세요");		
    		document.joinForm.pwd.focus();	
    		return false;	
    	}else if( document.frm.pwd.value!=document.frm.pwd_chk.value){
    		alert("비밀번호가 일치하지 않습니다");		
    		document.joinForm.pwd_chk.focus();		
    		return false;
    	}else{ 
    		return true;
    	}
    }

     

    비밀번호 재설정

    else if(command.equals("resetPw")) ac=new ResetPwAction();
    package com.sam.shop.controller.action;
    
    import java.io.IOException;
    
    import javax.servlet.ServletException;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    
    import com.sam.shop.dao.MemberDao;
    import com.sam.shop.dto.MemberVO;
    
    public class ResetPwAction implements Action {
    
    	@Override
    	public void execute(HttpServletRequest request, 
    			HttpServletResponse response) 
    			throws ServletException, IOException {
    		// 아이디와 패스워드 전달받아서
    		MemberVO mvo=new MemberVO();
    		mvo.setId(request.getParameter("id"));
    		mvo.setPwd(request.getParameter("pwd"));
    		
    		// 패스워드를 수정하고
    		MemberDao mdao=MemberDao.getInstance();
    		mdao.resetPw(mvo);
    		
    		// 패스워드 리셋 완료 페이지로 이동함
    		String url="member/resetPwComplete.jsp";
    		request.getRequestDispatcher(url).forward(request,response);
    	}
    }
    
    public void resetPw(MemberVO mvo) {
    	String sql="update member set pwd=? where id=?";
    	con = Dbman.getConnection();
    	try {
    		pstmt = con.prepareStatement(sql);
    		pstmt.setString(1, mvo.getPwd());
    		pstmt.setString(2, mvo.getId());
    		pstmt.executeUpdate();
    	} catch (SQLException e) {	e.printStackTrace(); 		
    	} finally { 	Dbman.close(con, pstmt, rs); }	
    }
    <%@ page language="java" contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8"%>
    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="UTF-8">
    <title>Insert title here</title>
    <link href="css/shopping.css" rel="stylesheet">
    <script src="member/member.js"></script>
    </head>
    <body>
    <h2>비밀번호 재설정 완료</h2>
    <table align="center" bgcolor="black" cellspacing="1" 
    			width="400">
    	<tr align="center" bgcolor="#FDE8FF" height="200">
    		<td width="230"><h3>비밀번호 재설정이 완료되었습니다</h3><br>
    			<input type="button" value="로그인 페이지로" 
    						onClick="move_login();">
    		</td></tr>
    </table>
    </body>
    </html>

     

    'WEB > ERMaster' 카테고리의 다른 글

    [ERMaster] shoppingmall - cart  (0) 2022.09.10
    [ERMaster] shoppingmall - category  (0) 2022.09.10
    [ERMaster] shoppingmall - update  (0) 2022.09.10
    [ERMaster] shoppingmall - login, logout, join  (0) 2022.09.10
    [ERMaster] shoppingmall - main  (0) 2022.09.10

    댓글

Designed by Tistory.