Information Security

13 게시글 확인 + 수정 + 삭제 본문

Web Hacking/Web 기초

13 게시글 확인 + 수정 + 삭제

leeeeye321 2017. 11. 30. 07:55

7. 게시글 확인: view.php

-메인 페이지의 게시글 목록에서 [제목]을 클릭하면 게시글을 확인할 수 있다.

-로그인한 사용자만 게시글을 확인할 수 있다.

1) 로그인하지 않은 사용자가 게시글을 보는 경우

-> 로그인 요구 -> 뒤로가기

 

2) 로그인한 사용자가 게시글을 보는 경우

-조회수 증가

-내용 출력

 

-일단 메인 페이지에서 제목을 클릭하면 view.php 페이지로 이동하여 글을 확인할 수 있도록 할 것이다.

-> main.php에서 게시글의 목록을 출력하는 태그에서 제목 부분에 링크를 추가한다.

-> 링크를 클릭하면 설정된 경로로 GET 방식으로 DB에서 현재 no의 값을 전달한다.

 

-view.php 페이지를 작성한다.

-> write.php 페이지와 거의 유사하므로 복사해서 사용했다.

-로그인한 사용자만 게시글을 확인할 수 있으므로 세션 변수를 통해서 사용자 인증을 진행한다.

-> is_login의 값이 0이면 로그인을 한 상태가 아니므로 로그인을 요구하는 메시지를 출력하고 뒤로가기를 진행한다.

 

-is_login의 값이 1이면 로그인을 한 상태이므로 view.php 페이지로 이동하여 글을 확인할 수 있다.

-글을 확인했으면 조회수를 증가시켜야 한다.

-> update 문을 사용하여 전달받은 no 값에 해당하는 행의 count 값을 증가시킨다.

-DB에서 해당 행을 조회하는 쿼리를 변수에 저장한다.

-> 쿼리의 실행 결과를 배열 형태로 저장해서 input 태그의 value의 값에 넣어준다.

-view.php 페이지 소스

-> value에 DB에서 가져온 값이 들어간 것 확인

 

로그인을 하지 않은 상태에서 제목을 클릭했다.

 

로그인을 요구하는 메시지가 출력된다.

 

이번엔 로그인을 하고 다시 제목을 클릭했다.

view.php 페이지로 이동하여 글의 내용을 확인할 수 있다.

 

조회수가 증가한 것도 확인할 수 있다.

 


 

8. 게시글 수정: update.php

-본인이 작성한 게시글만 수정할 수 있다.

[수정] 버튼을 클릭하면 값을 전달하면서 update.php로 이동하도록 action의 값을 변경한다.

 

세션 변수 [name]의 값(현재 로그인한 사용자)과 현재 보고 있는 게시글의 DB에 저장되어 있는 작성자를 비교해서 같다면 [수정] 버튼을 생성한다.

-> 수정할 때 현재 게시글의 번호(no)가 필요하므로 hidden 타입으로 지정하여 update.php 페이지로 넘어갈 때 전달되도록 한다.

 

-자신이 작성한 view.php 페이지에서 [수정] 버튼을 누르면 title, content, no 값을 가지고 update.php 페이지로 넘어온다.

-전달된 값들을 변수에 저장한다.

-> update 문을 사용하여 전달된 값들로 title, content를 변경한다.

  

내가 작성한 글이 아닐 경우 위와 같이 [수정] 버튼이 보이지 않는다.

 

-내가 작성한 글일 경우 위와 같이 [수정] 버튼이 보인다.

-글을 수정한 후 [수정] 버튼을 클릭한다.

 

게시글 수정을 성공했다.

 


 

9. 게시글 삭제: delete.php

-자신이 작성한 글만 삭제할 수 있다.

 

main.php 페이지를 삭제할 글의 [delete] 버튼을 클릭하면 해당 글의 번호를 가지고 delete.php 페이지로 이동하도록 수정한다.

 

자신이 작성한 글만 삭제할 수 있다.

-> 전달받은 글의 번호(no)에 해당하는 사용자의 아이디를 조회한다.

-> 세션 변수와 아이디를 비교하여 다르다면 작성자만 삭제할 수 있다는 메시지를 출력한 후 메인 페이지로 돌아간다. 

 

-세션 변수와 아이디가 같다면(자신이 작성한 글이라면) 해당 글을 삭제할 수 있게 설정한다.

 

로그인한 사용자와 작성자가 다르다면 위와 같은 메시지가 출력된다.

로그인한 사용자와 작성자가 같다면 글이 삭제된다.

삭제된 것 확인!

 

※ 게시글 확인, 수정, 삭제까지 모두 완료!! 아주 간단한 게시판 구현 성공