본문 바로가기
PHP 게시판 만들기

12. php로 기초적인 게시판 만들기 -write.php

by 똑똑한 영장류 2012. 12. 17.


Chap 12.



어제 작성해놓은게 다 날아가버렸네요.


그래서, 다시 작성합니다.


www 디렉토리 아래에 bbs 라고 만들고 그 안에 관련 파일들을 작성하겠습니다.



그에 앞서, 이전에 작성했던 것 중에 몇가지 수정을 하겠습니다.


먼저 main.css

header, footer 에 테두리를 빨간색에서 회색(#C1C1C1)으로 변경합니다. content 는 #0FF 로 변경합니다. 빨간색이 너무 강렬해서 ㅋㅋ


그리고, header.php

css를 읽어오는 부분이 상대경로로 되어있으니, 범용 이용가능하게 수정을 합니다.


<link href="http://<?php echo $_SERVER['HTTP_HOST']; ?>/bootstrap/css/bootstrap.css" rel="stylesheet">
<link href="http://<?php echo $_SERVER['HTTP_HOST']; ?>/main.css" rel="stylesheet">



자..그럼..bbs 갑시다.

게시판의 내용을 저장할 테이블을 DB에 마련해둬야겠네요. 테이블 명은 ap_bbs 로 합시다.




간단히 위처럼 만들어두고, 먼저 글을 작성하기 위한 폼을 만들어봅시다.


로그인 폼에서 해 봤던 거랑 기본적 구조는 별 차이가 없습니다. form 태그로 입력폼 만들어 주고, 받아서 DB에 저장하면 되지요.


write.php 작성해 봅시다.



<?php
require_once $_SERVER['DOCUMENT_ROOT'].'/preset.php';
include $_SERVER['DOCUMENT_ROOT'].'/header.php';
?>
글쓰기<br />
<form name ="write_form" method = "POST" action = "./write_check.php">
<input type="hidden" name="member_idx" value="<?php echo $_SESSION['member_idx'] ?>">
<table>
    <tr>
        <td>
    제목
    </td>
    <td>
            <input type ="text" name = "subject" size ="90">
    </td>
    </tr>
    <tr>
        <td>
            내용
    </td>
    <td>
            <textarea name="content" cols="100" rows="10"></textarea>
    </td>
    </tr>
</table>

<div>
    <input type = "submit" value = "저장">
</div>
   

</form>
       
<?php
    include $_SERVER['DOCUMENT_ROOT'].'/footer.php';
?> 


쉽죠? login.php 와 유사합니다. 각 항목값의 name 잘 봐두세요. 저값을 받아서 DB에 저장하게 됩니다.


write_check.php 를 만듭시다.



<?php
require_once $_SERVER['DOCUMENT_ROOT'].'/preset.php';
?>
<?php

$reg_date = time();
$member_idx = $_SESSION['member_idx'];

$q = "INSERT INTO ap_bbs (member_idx, subject,content,reg_date) VALUES('$member_idx', '$subject', '$content', '$reg_date')";

$result = $mysqli->query($q);

if ($result==false) {
    $_SESSION['writing_status'] = 'NO';
}
else {
    $_SESSION['writing_status'] = 'YES';
}

$mysqli->close();

header('Location: '.$url['root'].'bbs/write_done.php');
exit();

?> 


글 등록시간을 구하기 위해 time() 함수를 이용했습니다. UNIX Timestamp 를 구해주는 함수입니다.


그리고, 글 작성자가 누구인지를 기록하기 위해, 세션에 저장된 member_idx 를 가져옵니다.

이 값은 login_check.php 에서 세션에 기록을 해두어야하는데요, 이전 작업에서 빠져있습니다.

login_check.php에서 암호확인이 성공한 부분에 아래 내용을 더 추가해줍시다.


$_SESSION['member_idx'] = $row['member_idx'];


전달받은 값들을 쿼리를 통해 DB에 저장을 하고, 저장이 성공하면, writing_status 에 'YES'를 , 그렇지 않으면, 'NO'를 기록해두고, write_done.php 로 리다이렉트를 합니다.


write_done.php에서는 이 세션값을 확인하고, 글저장 결과를 메세지로 뿌려주게 됩니다.



<?php
require_once $_SERVER['DOCUMENT_ROOT'].'/preset.php';
include $_SERVER['DOCUMENT_ROOT'].'/header.php';


$writing_status = $_SESSION['writing_status'];
if($writing_status=='YES') {
    $message = '글이 저장되었습니다.';
}
else {
    $message = '저장에 실패했습니다.';
}
?>
        write_done.php - 게시판 글 저장 완료 페이지<br />
        <hr />
<?php
    echo $message;
?>
<?php
    include $_SERVER['DOCUMENT_ROOT'].'/footer.php';
?>
 


여기까지가 게시판에 글 저장하는 write 관련 내용이었습니다.







댓글