상세 페이지 : 댓글 저장
DATE : 2023/12/06
Last updated
DATE : 2023/12/06
Last updated
사용자가 위에 보이는 게시물에 "i am Dog person!"이라는 댓글을 달고 싶어하는 상황이라고 상상해보자.
지금은 단지 문자를 입력할 수 있는 칸과 임의대로 만들어둔 댓글들이 출력 되고 있을 뿐,
댓글을 저장하는 기능은 그 무엇도 구현되어있지 않은 상황이다.
댓글을 보여주는 영역에서는 사용자들이 작성한 댓글을 모아두었다가 가져오는 과정이 수행되는데
문제는.. 모아둔 댓글이 있어야 보여주든지 말든지 하지!!
그.래.서
사용자가 댓글을 작성한 후, COMMENT 버튼을 누르면
<Form> tag - action에 작성된 upload_comment.php가 동작하게 된다.
동시에 textarea에 작성된 내용이 POST method로 전달되면서
upload_comment.php에서는 $_POST['comment']로 그 값을 가져올 수 있다.
"댓글을 저장한다"는 관점에서 생각해보면 각 댓글이 어떤 게시물에 달린 댓글인지 구분할 필요가 있다.
이를 위해 게시물의 식별 정보인 ID를 idx 라는 이름으로 전달해주는 것이다.
여기까지 봤을 때 준비된 재료는
댓글 내용과 게시물 ID이다.
댓글 정보를 저장할 Table은 총 5개의 column을 가지기 때문에
cmt_id : 1부터 자동 증가하는 댓글 식별 정보
idx : 댓글이 어떤 게시물의 댓글인지 나타내는 게시물 ID
author : 댓글 작성자
date : 댓글 작성 일시
comment : 작성된 댓글 내용
남아있는 author & date 값을 알아내야 하고 이는 upload_comment.php에서 수행할 것이다.
article page에서 넘겨준 comment, id, comment 값을 변수에 할당하고
댓글 작성자가 누구인지는 현재 로그인 한 사용자의 JWT 쿠키에서 뽑아온다.
작성 일시도 date() 함수를 사용해 어렵지 않게 구해 실행할 INSERT문을 완성해주면 된다.
INSERT문의 경우에는 결과가 0 or 1로 나오는 데 만약 Query를 실행하는 과정에 문제가 생겨
0이 반환 된다면 not 연산자에 의해 if문이 실행되면서 Error를 출력하게 될 것이다.
이제 준비가 끝났으니 댓글을 작성해 Table에 잘 들어가는 지 확인해보자.
게시물에 댓글을 작성한 후, Comment 버튼을 누르면
정상적으로 처리되었다는 문구와 함께
이제 게시물에 이런 저런 댓글을 작성해 임의로 만들어둔 댓글이 아닌!
사용자가 직접 작성한 댓글을 출력하는 comment_box를 구현해보도록 하자!
댓글을 저장하는 기능을 먼저 살펴보고자 하는 것.
Table에도 댓글이 새로 추가된 걸 확인할 수 있다.