Hacking_study/개발과제

6주차_(2) 회원 게시판 글 수정

jin_li 2023. 5. 28. 16:12
개발 순서

회원 게시판 글 수정 폼 페이지 > 글 수정 처리 php

 

1. 회원 게시판 글 수정 폼 페이지

 

회원 게시판의 글 보기 페이지에서, "글 수정하기" 버튼을 눌렀을 때 이동될 페이지 링크를 수정한다.

<button onclick="location.href='member_modify_form.php?num=<?=$num?>'">수정하기</button>
 
cs

 

이후 글 수정 폼 페이지를 만드는데, 기본적인 형식은 글 작성 폼 페이지와 같다. 회원만 수정할 수 있도록 세션을 체크하고, 해당 글의 내용을 db에서 들고와서 넣어야한다.

 

member_modify_form.php 파일

<?php
    session_start();
 
    if (isset($_SESSION["username"])) 
        $username = $_SESSION["username"];
    else 
        echo "<script>alert('회원 게시판 글 수정은 작성자만 수정할 수 있습니다.'); history.go(-1); </script>";
 
    $num = $_GET["num"];
 
    $conn = mysqli_connect("localhost", "", "", "");
    if (!$conn) {
        die("MySQL 연결 실패: " . mysqli_connect_error());
    }
 
    $sql = "select * from memberboard where board_num=$num";    
    $result = mysqli_query($conn, $sql); 
        
    $row = mysqli_fetch_assoc($result);
 
    $name   = $row["username"];           
    $title   = $row["title"];       
    $content = $row["content"];       
    $wr_date = date("Y-m-d (H:i)");  
    $file_name = $row["file_name"];
 
?>
 
<!DOCTYPE html>
<html>
<head> 
    <meta charset="utf-8">
    <title>회원게시판 글 수정</title>
    <link rel="stylesheet" href="member1.css">
    <script>
      function check_input() {        
        if (!document.getElementsByName("title")[0].value) {       
            alert("제목을 입력하세요!");
            document.getElementsByName("title")[0].focus();
            return;
        }
        if (!document.getElementsByName("content")[0].value) {     
            alert("내용을 입력하세요!");    
            document.getElementsByName("content")[0].focus();
            return;
        }  
        document.board.submit();
    }
    </script>
</head>
<body>     
    <h2>회원 게시판 > 글 수정하기</h2>
    <form name="board" method="POST" action="member_modify.php?num=<?=$num?>">
        <ul class="board_form">
            <li>
                <span class="col1">ID</span>
                <span class="col2"><?=$username?></span>
            </li>            
            <li>
                <span class="col1">제목</span>
                <span class="col2"><input name="title" type="text" value="<?=$title?>"></span>
            </li>            
            <li class="area">    
                <span class="col1">내용</span>
                <span class="col2">
                    <textarea name="content"><?=$content?></textarea>
                </span>
            </li>
            <li>
                <span class="col1"> 첨부 파일</span>
                <span class="col2"><?=$file_name?></span>
            </li>    
        </ul>
        <ul class="buttons">
            <li><button type="button" onclick="check_input()">저장하기</button></li>
            <li><button type="button" onclick="location.href='member_list.php'">목록보기</button></li>
        </ul>
    </form>
</body>
</html>
cs

 

 

 

2. 글 수정 처리할 파일

 

db에 글을 업데이트할 실질적인 수정 기능을 수행하는 파일을 만든다.

 

member_modify.php

<?php
    session_start();
    $username = $_SESSION["username"];
 
    $num = $_GET["num"];
 
    $title = $_POST["title"];
    $content = $_POST["content"];
    $wr_date = date("Y-m-d (H:i)");
 
    $conn = mysqli_connect("localhost""", """");
    $sql = "UPDATE memberboard SET title='$title', ";
    $sql .= "content='$content', wr_date='$wr_date' where board_num=$num";
    mysqli_query($conn$sql);
 
    mysqli_close($conn); 
 
    echo "
       <script>
       location.href = 'member_list.php';
       </script>
    ";
?>
cs

 

 

 

 

게시글 내용을 수정해 보았다. 그런데 사진 올리다가 알았다. 화면 하단에 저장하기 목록보기 버튼이..... 따로 놀고 있네.....ㅎ...수정해야겠다

 

 

참고도서 : PHP+MySQL 입문