[팁/디버깅 1] 아이디중복확인, 비밀번호확인, 닉네임 중복확인 구현

오레오·2023년 12월 6일
0

오픈SW플랫폼

목록 보기
2/8

🚩 alert창이 띄워지면서 값이 날아가는 문제

✅ 해결 시도 1: flash 값을 alert로 출력하는 대신 innerHTML로 출력

1. warning-msg를 추가

  • 아이디 중복확인

  • 비밀번호 확인

  • 닉네임

2. innerHTML js를 추가

3. flask run

  • Input값 모두 입력
  • 중복확인 버튼을 누르면 warning문구가 이상하게 변경됨, 입력한 input값이 모두 날아간다.

분석

if-else문으로 구현된 flash값의 return값은 하나로 고정되어 있어서 배열을 사용하여 변경이 필요한 워닝문구를 부분적으로 변경시키는 것에서 문제가 발생한 것으로 보인다.

아이디 중복확인 return flash, 비밀번호 확인 return flash, 닉네임 중복확인 return flash 값을 서로 다른 배열에 저장하여 각각의 버튼이 onclick 되었을 때 해당 flash값으로 문구를 바꾸면 해결이 될 것 같지만, 이미 만들어진 register_user() 함수의 주 기능을 수정해야 하는 위험이 있다고 판단했다. 따라서 구현된 함수를 최대한 활용하여 페이지에 출력할 수 있도록 해결하고자 한다.

✅ 해결 시도 2: app.py의 register_user() 함수가 입력받은 input값을 return 하도록 수정

return render_template("8~10/signup.html")

만 있던 기존 코드에

id=session.get('id_',''), pw=session.get('pw',''), nickname=session.get('nickname',''), hp=session.get('HP',''), pw2=session.get('pw2',''), email=session.get('email',''), college=session.get('college',''), major=session.get('major','')

을 return값으로 추가했다.

  • alert창 뜨면 값 날라가는 문제를 해결하였으므로 html에 flash값을 alert로 출력하는 코드를 추가했다.

  • flask run
    아까와 같은 input값을 입력하고 중복확인버튼을 누르면 flash값이 alert창에 정상적으로 출력된다.

  • alert창을 닫으면 입력했던 input값들이 return되어 날라가지 않고 뜬다.

✅ 해결 확인: 다양한 경우에서의 적용 확인

-확인한 아이디 중복확인과 동일한 결과가 비밀번호 확인, 닉네임 중복확인에서도 잘 작동한다.

💡 TIP

  • 경우에 따라 HTML 페이지에 출력을 하는 방법을 적절히 선택한다. window.alert(), innerHTML 등
  • 문제 없이 구현된 부분을 최대한 활용할 것
  • 오류가 있는 부분을 확인하기 위해 출력문을 작은 단위로 쪼개서 실행시켜보는 것도 좋은 방법이다.
profile
2023-2 오소플

0개의 댓글