Chap 16.
수정은 글 보기 와 매우 유사합니다. 우선 글 내용을 가져와서 화면에 뿌려주는데, Form 태그로 뿌려주어 수정할 수 있도록 하면 됩니다.
view.php를 수정해야겠네요.
현재 사용자와 글을 작성자가 같을 경우, 아래 쪽에 수정으로 가는 링크를 달아줍시다.
<?php
if( $_SESSION['member_idx']==$data['member_idx']) {
echo '<a href="http://'.$_SERVER['HTTP_HOST'].'/bbs/modify.php?doc_idx='.$doc_idx.'">수정</a>';
}
?>
그리고, modify.php 를 작성합시다.
write.php 와 유사하니까, 그대로 가져오고, 입력하는 부분에 문서 내용을 초기 값으로 노출시키면 되겠습니다. 그리고, modify_check.php에게 현재 글번호를 전달하기 위해 doc_idx 를 hidden으로 전송합니다.
<?php require_once $_SERVER['DOCUMENT_ROOT'].'/preset.php'; include $_SERVER['DOCUMENT_ROOT'].'/header.php'; ?> <?php if(isset($doc_idx)==false) { echo '글번호가 지정되지 않았습니다.'; exit(); } $q = "SELECT * FROM ap_bbs WHERE doc_idx = $doc_idx"; $result = $mysqli->query($q); $data = $result->fetch_array(); ?> 글수정하기<br /> <form name ="modify_form" method = "POST" action = "./modify_check.php"> <input type="hidden" name="doc_idx" value="<?php echo $doc_idx ?>"> <table> <tr> <td> 제목 </td> <td> <input type ="text" name = "subject" size ="90" value="<?php echo $data['subject'];?>"> </td> </tr> <tr> <td> 내용 </td> <td> <textarea name="content" cols="100" rows="10" ><?php echo $data['content'];?></textarea> </td> </tr> </table> <div> <input type = "submit" value = "저장"> </div> </form> <div> <?php echo '<a href="http://'.$_SERVER['HTTP_HOST'].'/bbs/list.php" class="btn" >목록</a>'; ?> </div> <?php include $_SERVER['DOCUMENT_ROOT'].'/footer.php'; ?> |
그리고, submit 버튼이 클릭되면 받아서 처리할 modify_check.php를 만들어 줍시다.
modify_check.php 가 하는 일은 write_check.php와 유사합니다만, DB에 저장을 하는 것이 아니라, 기존 정보를 업데이트를 해야합니다. 쿼리가 달라지지요.
INSERT 가 아니라, UPDATE 문을 사용해야 합니다.
아래와 같습니다.
$q = "UPDATE ap_bbs SET subject='$subject',content='$content' WHERE doc_idx=$doc_idx";
$result = $mysqli->query($q);
modify_check.php는 아래와 같습니다.
<?php require_once $_SERVER['DOCUMENT_ROOT'].'/preset.php'; ?> <?php $q = "UPDATE ap_bbs SET subject='$subject',content='$content' WHERE doc_idx=$doc_idx"; $result = $mysqli->query($q); if ($result==false) { $_SESSION['modify_status'] = 'NO'; } else { $_SESSION['modify_status'] = 'YES'; } //$result->free(); $mysqli->close(); //var_dump($url); header('Location: '.$url['root'].'bbs/modify_done.php'); exit(); ?> |
write_done.php 처럼 modify_done.php 를 작성해서 수정 후 결과 페이지를 만들어 줍니다. 내용을 거의 같습니다.
<?php require_once $_SERVER['DOCUMENT_ROOT'].'/preset.php'; include $_SERVER['DOCUMENT_ROOT'].'/header.php'; $modify_status = $_SESSION['modify_status']; if($modify_status=='YES') { $message = '글이 수정되었습니다.'; } else { $message = '수정 실패했습니다.'; } ?> modify_done.php - 게시판 글 수정 완료 페이지<br /> <hr /> <?php echo $message; ?> <?php include $_SERVER['DOCUMENT_ROOT'].'/footer.php'; ?> |
여기까지 글 수정에 관한 내용이었습니다.
이상!
'PHP 게시판 만들기' 카테고리의 다른 글
18. 아차! 하고 빼먹은 로그아웃 구현하기 (5) | 2012.12.17 |
---|---|
17. php로 기초적인 게시판 만들기 - 글 삭제하기 (2) | 2012.12.17 |
15. php로 기초적인 게시판 만들기 - 글 내용보기 (1) | 2012.12.17 |
14. php로 기초적인 게시판 만들기 - 목록에 페이지 링크 추가하기 (3) | 2012.12.17 |
13. php로 기초적인 게시판 만들기 - list.php (33) | 2012.12.17 |
댓글