제작

게시판 기능 구현 (추가)

IC 2023. 4. 24.

boardModifySave.php

이 코드는 PHP를 사용하여 게시판의 게시물을 수정하는 기능을 구현한 것입니다. 주요 작동원리는 다음과 같습니다.

 

  • 포함 파일: connect/connect.php와 connect/session.php 파일을 포함하여 데이터베이스 연결 및 세션 처리를 설정합니다.
include "../connect/connect.php";
include "../connect/session.php";
  • 사용자 입력 값 받기: 사용자가 입력한 게시물 ID, 제목, 내용 및 비밀번호를 받아 변수에 저장합니다.
$boardID = $_POST['boardID'];
$boardTitle = $_POST['boardTitle'];
$boardContents = $_POST['boardContents'];
$boardPass = $_POST['boardPass'];
  • 문자열 이스케이프 처리: 보안을 위해 사용자 입력 값을 이스케이프 처리합니다.
$boardTitle = $connect -> real_escape_string($boardTitle);
$boardContents = $connect -> real_escape_string($boardContents);
$boardPass = $connect -> real_escape_string($boardPass);
  • 로그인 된 회원 정보 확인: 현재 로그인 된 회원의 ID를 가져옵니다.
$memberID = $_SESSION['memberID'];
  • 회원 정보 및 비밀번호 확인: 회원 정보와 입력된 비밀번호가 일치하는지 확인합니다.
$sql ="SELECT * FROM members WHERE memberID ={$memberID}";
$result = $connect -> query($sql);
// ...
if($info['memberID'] == $memberID && $info ['youPass'] == $boardPass){
    // ...
} else {
    // ...
}
  • 게시물 업데이트: 입력된 정보가 올바르면, 게시물의 제목과 내용을 업데이트합니다.
$sql = "UPDATE board SET boardTitle = '{$boardTitle}', boardContents = '{$boardContents}' WHERE boardID = '{$boardID}'";
$connect -> query($sql);
  • 오류 메시지 출력: 비밀번호가 일치하지 않거나 관리자 에러가 발생한 경우, 오류 메시지를 출력합니다.
echo "<script>alert('비밀번호가 틀렸습니다. 다시 한번 확인해주세요!')</script>";
echo "<script>alert('관리자 에러!')</script>";
  • 페이지 리다이렉트: 게시물 수정이 완료되면 사용자를 게시판 페이지로 돌아가도록 합니다.
location.href = "board.php";

결론적으로, 이 코드는 사용자가 게시판의 게시물을 수정할 수 있도록 하는 기능을 구현한 것입니다.

사용자 입력 값을 받아 데이터베이스를 업데이트하고, 비밀번호 및 기타 오류를 처리합니다.

 

board.php

 

<?php
    if(isset($_GET['page'])){
        $page = (int) $_GET['page'];
    } else {
        $page = 1;
    }
    $viewNum = 20;
    $viewLimit = ($viewNum * $page) - $viewNum;
    // 1~20 DESC LIMIT 0, 20        --> page1 (viewNum * 1) - viewNum
    // 21~40 DESC LIMIT 20, 20      --> page2 (viewNum * 2) - viewNum
    // 41~60 DESC LIMIT 40, 20      --> page3 (viewNum * 3) - viewNum
    // 61~80 DESC LIMIT 60, 20      --> page4 (viewNum * 4) - viewNum
    $sql = "SELECT b.boardID, b.boardTitle, m.youName, b.regTime, b.boardView FROM board b JOIN members m ON(b.memberID = m.memberID) ORDER BY boardID DESC LIMIT {$viewLimit}, {$viewNum}";
    $result = $connect -> query($sql);
    if($result){
        $count = $result -> num_rows;
        if($count > 0){
            for($i=0; $i<$count; $i++){
                $info = $result -> fetch_array(MYSQLI_ASSOC);
                echo "<tr>";
                echo "<td>".$info['boardID']."</td>";
                echo "<td><a href='boardView.php?boardID={$info['boardID']}'>".$info['boardTitle']."</a></td>";
                echo "<td>".$info['youName']."</td>";
                echo "<td>".date('Y-m-d', $info['regTime'])."</td>";
                echo "<td>".$info['boardView']."</td>";
                echo "</tr>";
            }
        }
    }
?>

 

 

댓글