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>";
}
}
}
?>
댓글