Information Security

10 게시판 회원가입 페이지 + 로그인 페이지 구현 본문

Web Hacking/Web 기초

10 게시판 회원가입 페이지 + 로그인 페이지 구현

leeeeye321 2017. 11. 28. 02:13

3. 회원 가입 페이지: signup_ok.php

-아이디 중복 체크 기능을 구현할 것이다.

-> 아이디가 중복되지 않았으면 해당 회원의 정보를 DB에 저장한다.

 

signup.html 페이지에서 넘어온 값들을 각각 변수들에 저장한다.

 

-user 테이블에 저장되어 있는 user_id 값 중에 전달받은 id 값과 일치하는 값이 있는지 조회하는 select 문을 변수에 저장한다.

-이 sql 문을 실행한 후 조회된 결과의 행(row) 수를 exist 변수에 저장한다.

-이미 DB에 존재하는 아이디인 경우 exist 변수에는 1이 저장되어 'already user' 메시지를 출력한 뒤 window.history.back()(히스토리 목록에서 이전 URL 로드)가 실행되어 다시 회원 가입 페이지로 이동하게 된다.

 

-입력한 아이디가 DB에 존재하지 않는 경우 해당 정보를 DB에 저장할 것이다.

-회원의 아이디, 패스워드, 이메일을 저장하는 insert 문을 변수에 저장한다.

-insert 문의 실행이 성공했으면 로그인을 성공했다는 메시지를, 실패했으면 실패했다는 메시지를 출력한 후 main.php 페이지로 이동하게 된다.

 

실제로 기능이 구현되었는지 확인해보겠습니다.

 

-현재 DB가 비어있는 상태이기 때문에(첫번째 회원) 당연히 회원가입에 성공한다.

-[확인] 버튼을 누르면 main.php 페이지로 돌아간다.

 

-중복 체크 기능을 확인하기 위해 아까와 같은 정보로 회원가입을 시도한다.

-> already user 메시지가 출력된다.

 

 [확인] 버튼을 클릭하면 다시 입력하는 페이지(signup.html)가 출력된다.

 


그럼 이제 중복되지 않는 아이디로 두번째 회원가입을 시도한다.

-> 성공!

 

DB에서 user 테이블을 조회해보면 insert 문에 의해 아이디가 중복되지 않는 회원의 정보가 삽입되어 있는 것을 확인할 수 있다.

 

signup_ok.php 페이지의 전체 코드는 위와 같다.

 


 

4. 로그인 페이지: signin_ok.php

-세션을 사용하여 사용자 인증 기능을 구현할 것이다.

 

-main.php 페이지에서 아이디와 패스워드를 입력하고 [Sign in] 버튼을 클릭하면 signin_ok.php로 이동하게 된다.

-전달받은 아이디와 패스워드는 각각 변수에 저장한다.

-user 테이블에 저장되어 있는 값이 전달받은 id, pw 값과 일치하는지 조회하는 select 문을 변수에 저장한다.

-DB에 전달받은 값이 저장되어 있다면 cnt 변수에는 1이 저장되고 아니라면 0이 저장될 것이다.

-if 문에서 조건문 $cnt>0이 참이라면($cnt==1) 세션 변수 [is_login]에 1이, [name]에 전달받은 id 변수가 저장된 후 main.php 페이지로 이동할 것이다.

-조건문이 거짓이라면($cnt==0), 세션 변수 [is_login]에 0이 저장된 후 main.php 페이지로 이동할 것이다.

 

main.php 페이지를 세션 변수 [is_login]의 값이 1이면 로그인이 되어 로그아웃 버튼을 출력하고 값이 0이면 다시 로그인하는 화면이 출력되도록 수정하였다.

 

-[Sign out](로그아웃) 버튼을 클릭하면 연결되는 페이지이다.

-로그아웃을 하면 생성했던 세션을 파기한 후 main.php 페이지로 돌아간다.

 

main.php에서 아이디, 패스워드를 입력하고 [Sign in] 버튼을 클릭한다.

 

session 폴더를 확인해보면 세션이 생성되어 있고, 그 안의 내용도 확인할 수 있다.

 

-main.php에서는 [Sign out] 버튼이 생기게 된다.

-이를 클릭하면 다시 로그인할 수 있는 화면으로 돌아간다.

 

session 폴더를 다시 확인하면 세션이 파기되어 방금 확인한 폴더는 사라진 것을 확인할 수 있다.

'Web Hacking > Web 기초' 카테고리의 다른 글

12 게시글 목록 출력  (0) 2017.11.29
11 게시글 작성 + 저장 페이지  (0) 2017.11.28
09 게시판 기본 형식 구축  (1) 2017.11.24
8 인증 처리  (0) 2017.11.23
7 HTML + PHP + MySQL 실습  (0) 2017.11.22