본문 바로가기

개발과제

[노말틱 모의 해킹 취업반 2주차 개발과제 (3)] 로그아웃 만들기

이제 로그인이 있으니 로그아웃이 있어야죠!

 

간단하게 저번에 만든 흐름도에 추가를 하겠습니다.

 

못 드려도 봐줘요

 

 

좋습니다

 

바로 코딩으로 넘어가죠!

솔직히 전 포스팅에 올린 session_unset과 session_destroy만 알면 됩니다!

.

.

.

로그인만 한 유저만 들어올 수 있는 코딩 페이지로 갑시다.

 

그리고 로그아웃 버튼 먼저 만들겠습니다!

 

로그인 페이지랑 같이 form 형식에 버튼을 만들겠습니다.

 

form 형식 만들려면 일단 html을 작성해야 됩니다.

일단 저는 login페이지에 코딩을 복붙하고 필요 없는 기능을 지웠습니다.

 

 

우선 form 먼저 수정하겠습니다.

 

placeholder을 로그아웃으로 바꾸겠습니다

그리고 action 부분에 로그아웃 페이지로 가라고 process_logout.php라고 적었습니다!

 

메서드는 당연히 POST로 하고요.

그리고 post로 보낼 때 상자(파라미터) 이름을 logout으로 하겠습니다.

이름을 붙여서 보내야만 post를 받을 수 있습니다!

 

 

간단하면서도 까다롭네요!

 

이제 process_logout.php를 만듭시다.

#sudo touch process_logout.php

 

 

로그인만 해도 페이지가 많네요!

 

이제 process_logout.php에 입력하겠습니다!

우선 세션 시작하고 session_start()

그리고 isset함수 이용해서 post로 상자(파라미터)가 왔는지 확인합니다!

 

그림 있으면 편안하드라구요

 

그리고 unset() 함수로 세션을 비우고 destroy로 세션을 없애겠습니다.

unset 해야지 세션 내용이 완전히 사라지게 되기 때문에 꼭 실행해야 합니다!

마지막으로 페이지 닫도록 하겠습니다

 

 

갑작스럽지만 오늘 저녁은 치킨입니다

 

 

근데 솔직히 로그아웃 하려고 버튼 눌렀잖아요? 그럼 굳이 $_POST 안 받고

if 문 안 쓰고 그냥 세션 제거만 하면 되는 거 아닌가요?

 

그래도 됩니다 코딩에 답은 없죠. 근데 저는 혹시나.. 저런 조건 없으면

예상치 못한 무슨 일이 벌어질까 봐 무서워서 로그아웃 눌렀지만 정말 눌렀는지 코딩상 확인하기 위해 만들었습니다.

 

자바스크립트로 alert 함수 이용해서 로그아웃하시겠습니까? 까지 물어보면 완벽하겠네요!!

근데 다음에 만들기로 합시다.

.

.

.

 

한번 해봅시다!

다 저장하고 봤는데 버튼이 왜 제출로 되어있죠??

 

당황

 

버튼에 placeholder 썼군요! value로 바꿔 줍시다.

 

뻘쭘하네요 저도 실수할 수 도 있죠

 

login 페이지에 있는 버튼도 수정하고 다시 실행하겠습니다

 

 

로그인!

 

다시 로그아웃!

 

처음으로

 

한번 localhost/only_login.php 로 페이지에 쳐서 들어가 보겠습니다.

만약 정상 로그아웃 됐으면 안 들어가지겠죠

 

안되는게 정상인데..

엔터!

 

안 들어가지네요!

 

저는 잘 됐습니다! 다행히 로그아웃이 잘 되어있는 걸 알 수 있습니다.

.

.

.

.

이로써 과제를 마치겠습니다

 

그리고 이제 데이터베이스 정보들을 전부 php에 넣고 관리를 하겠습니다!

 

#sudo touch DB_INFO.php 생성

 

이제 이 코딩에 데이터베이스 정보를 넣겠습니다.

 

이렇게요!

 

그리고 저장하고 난 뒤에 이 파일을 소유자만 사용 가능하게 하겠습니다.

 

#sudo chmod 644 DB_INFO.php

 

이 말은 소유자만 읽기/쓰기 가능하고

다른 사람은 이걸 읽기만 가능하고 실행이나 쓰기도 못하게 했습니다.

 

좀 더 자세한 설명은

 

https://recipes4dev.tistory.com/175

 

리눅스 chmod 명령어 사용법. (Linux chmod command) - 리눅스 파일 권한 변경.

1. 리눅스 파일 사용 권한 리눅스에서, 파일(File)을 사용해 할 수 있는 작업은 크게 세 가지로 나눌 수 있습니다. 파일에 저장된 데이터를 읽기. (r = read). 파일에 데이터를 쓰기. (w = write). 파일 실

recipes4dev.tistory.com

여기 참고하시면 됩니다

 

-어? 다른 사람이 읽기만 해도 좀 위험하지 않나요?

맞아요! 일단 1차 방어라고 보시면 됩니다. 그래도 root 권한이 아닌 이상 이 파일을 접근도 못합니다.

 

-그럼 소유자만 사용 가능하게 하면 되잖아요!

만약 그러면 저희 서버도 읽는 것이 안돼서 에러가 나게 됩니다.

 

다음에 비밀번호를 코딩에 작성 안 하고 암호화해서 적는 방법을 알려드리겠습니다!

.

.

.

그리고 mysql 연결하는 페이지마다 이렇게 작성합니다!

 

이렇게요!

 

include로 저 php을 가져오고 그 안에 있는 변수를 사용하는 것입니다!

 

이러고 저장하시고 잘 되는지 확인해 보시면 됩니다.

.

.

이렇게 글을 마치겠습니다