본문 바로가기
WEB HACKING/웹 해킹[실습]

Php로 웹 개발하기 : 게시판(4) - Create

by madevth 2021. 11. 11.
반응형

이번에는 글 작성 기능을 만들어보자!

 

우선 제목과 내용을 적고 제출할 수 있는 form 하나를 만들자.

<form action = "board_create.php" method = "post">
    <p><input name = "create_title" type = "text" placeholder = "title"/></p>
    <p><textarea name = "create_body" placeholder = "body"></textarea></p>
    <p><input type = "submit" value = "create"></p>
</form>

input text과 textarea로 값을 받아서 board_create.php로 전달한다.

 

기존에 만든 게시판 데이터를 관리하는 board 테이블은 내용을 넣을 컬럼이 없으니 content 컬럼을 추가해주자.

ALTER table `board` ADD `content` varchar(10000) NOT NULL;

update board set content = 'hello' where username = 'normaltic';

ALTER로 컬럼을 추가해준 후, update 방식으로 content를 추가해준다.

 

이제 제목과 내용을 title과 content에 추가해야 하는데, 그 외에 username은 현재 로그인되어 있는 사용자의 이름으로, 날짜와 시간은 현재 시간으로 넣도록 기능을 추가해주어야 하므로 우선 사용자는 'test', 날짜와 시간은 2021-00-00, 00:00으로 삽입해주자.

<?php
    if(isset($_POST['create_title']) && isset($_POST['create_body']) && isset($_POST['create_title']) != NULL && isset($_POST['create_body']) != NULL){
        $title = $_POST['create_title'];
        $content = $_POST['create_body'];
        $username = 'test';
        $date = '2021-00-00';
        $time = '00:00';

        $conn = mysqli_connect('localhost', 'ID', 'PW', 'DBname');
        $sql = "INSERT INTO board (username, title, date, time, content) VALUES ('$username', '$title', '$date', '$time', '$content');";

        if($result = mysqli_query($conn, $sql)){
            echo "<script>alert('글 작성에 성공하셨습니다!')</script>";
            echo "<script>window.location.href='board.php';</script>";
        }
        mysqli_close($conn);
    }
?>

 

잘 되는지 테스트를 하기 위해 내용을 입력한 후 create를 누르면, 성공 메시지가 뜨고 자동으로 게시판 화면으로 돌아가는데, 행이 잘 추가되어있는 것을 볼 수 있다.

DB에도 잘 저장되어있는 것을 볼 수 있다.

 

이제 CSS로 글 작성화면답게 꾸미고, 앞서 언급한 사용자 이름과 날짜를 넣는 기능을 추가해주면 완성이다!

반응형

댓글