project

[웹게시판] (16) 댓글 등록(comment.php)

cheda 2022. 1. 17. 17:49

댓글 등록 페이지

comment.php 파일은 view.php의 댓글 입력 폼에서 내용을 작성하고 '댓글쓰기'버튼 클릭했을 때 연결되어 댓글 등록 동작을 수행한다.

view.php
comment.php

 

view.php: 댓글작성 반영

 

comment.php

<?php
    $connect = mysqli_connect("localhost", "comment_user", "password", "comment_db") or die("connect fail");
    $number = $_GET['number'];
    $content = $_POST[cmt_content];
    date_default_timezone_set('Asia/Seoul');
    $date = date('Y-m-d H:i:s');
    $URL = "./view.php?number=$number";

    session_start();
    $id = $_SESSION['userid'];
    
    if(!isset($_SESSION['userid'])) {
?>      <script>
            alert("로그인이 필요합니다.");
            location.replace("<?php echo $URL?>");
        </script>
<?php
    }
    else if ($content) {
        $query = "insert into comment (board_number, id, content, date) values ('$number' ,'$id', '$content', '$date')";
        $result = $connect->query($query);
        if ($result) {
?>
            <script>
            alert('댓글이 작성되었습니다.');
            location.replace("<?php echo $URL?>");
            </script>
<?php
        }
        else { ?>
            <script>
            alert('댓글 작성에 실패했습니다.'); 
            location.replace("<?php echo $URL?>");
        </script>
<?php
        }
    }
    else {
?>      <script>
            alert('댓글 작성에 실패했습니다.'); 
            location.replace("<?php echo $URL?>");
        </script>
<?php
   }
?>

(1)  DB에 연결

댓글을 저장하는 comment_db에 comment_user 사용자로 연결한다.

GET 메소드를 통해 전달받은 댓글이 달릴 게시글 번호, POST 메소드를 통해 전달받은 댓글 내용을 각 변수에 저장한다.

$date변수는 현재 날자로 저장한다.

PHP 함수, 변수
mysqli_connect() / $_POST / $_GET / date_default_timezone_set('Asia/Seoul) / date()
  • (생략: index.php / view.php에서 설명)

 

(2) 세션 확인

로그인된 사용자인지 검사하고, 로그인되지 않은 사용자이면 메시지(로그인 필요)를 띄워주고 이전 페이지로 되돌아간다.

PHP 함수, 변수
session_start() / $_SESSION
  • (생략: index.php 에서 설명)

 

(3) DB에 수정된 내용 반영

MySQL 질의문
INSERT INTO comment (board_number, id, content, date) VALUES ('$number' ,'$id', '$content', '$date')
  • insert 구문으로 테이블comment에 데이터를 추가한다.
PHP 함수, 변수
query()
  • (생략: index.php에서 설명)

 

(4) 결과 알림 띄워주고 이전 페이지로 복귀