게시글 수정내용 등록
modify_action.php 파일은 사용자가 입력한 게시글 수정한 내용을 board_db에 업데이트한다.
modify_action.php
<?php
$connect = mysqli_connect("localhost", "board_user", "password", "board_db") or die ("connect fail");
$number = $_POST[number];
$title = $_POST[title];
$content = $_POST[content];
$query = "update board set title='$title', content='$content' where number=$number";
$result = $connect->query($query);
// ##UPDATE##
$tmpfile = $_FILES['upfile']['tmp_name'];
$f_name = iconv("UTF-8", "EUC-KR", $_FILES['upfile']['name']);
if($f_name != '') { // 파일이 업로드 되었을 경우
$target_dir = "up/".$f_name; // 업로드한 파일이 이동될 수 있게 폴더 경로지정, $upfil_name변수로 업로드파일 이름을 가져온다.
// 업로드 금지 파일 식별: 파일 확장자가 html, htm, php, inc인 경우에 업로드 불가
$file_text = explode(".", $f_name);
$extension = $file_text[sizeof($fname)-1];
/*
if( !strcmp($extension, "html") ||
!strcmp($extension, "htm") ||
!strcmp($extension, "php") ||
!strcmp($extension, "inc") )
{
$msg = "업로드가 금지된 파일입니다.";
}
*/
// 동일한 파일이 있는지 확인 (move_uploaded_file 함수는 동일한 이름의 파일이 있을 경우 덮어쓴다)
if (file_exists($target_dir)) {
$msg = "동일한 파일이 있습니다.";
}
// 지정된 디렉토리에 파일을 저장
if (!move_uploaded_file($tmpfile, $target_dir)) { // false일 경우
$msg = "파일 저장 실패";
}
$connect->query("update board set file_dir_name='$target_dir', file_name='$f_name' where number='$number'");
}
// ##UPDATE## END
if($result) {
?>
<script>
alert("수정되었습니다.");
location.replace("./view.php?number=<?=$number?>");
</script>
<?php }
else {
echo "fail";
}
?>
(1) DB에 연결 / 사용자 입력값 변수에 저장
게시글을 저장하고 있는 board_db에 board_user 사용자로 연결한다.
POST 메소드를 통해 전달받은 수정할 게시글 number, 수정된 제목, 수정된 내용, 수정된 첨부파일을 각 변수에 저장한다.
PHP 함수, 변수 |
mysqli_connect() / $_POST
|
(2) DB에 수정된 내용 반영
MySQL 질의문 |
UPDATE board SET title='$title', content='$content' WHERE number=$number
|
PHP 함수, 변수 |
query()
|
(3) 파일을 첨부한 경우
$tmpfile 변수에 POST 메소드를 통해 전달받은 파일의 임시파일 이름을 저장한다.
$f_name변수에 UTF-8로 인코딩한 업로드 파일의 이름을 저장한다. 사용자가 파일을 첨부하지 않았다면 $f_name은 빈 값이 된다.
사용자가 첨부한 파일이 있는지 검사한 후, 있다면 파일이 저장될 경로를 $target_dir 변수에 저장하고, 업로드 금지 파일형식인지 또는 동일한 파일명을 가진 파일이 서버에 존재하는지 확인한 후 지정된 디렉토리에 파일을 저장한다.
PHP 함수, 변수 |
$_FILES / explode() / file_exist() / move_uploaded_file()
|
(4) 결과 알림 띄워주고 이전 페이지로 복귀
[ 참고한 블로그 ]
'project' 카테고리의 다른 글
[웹게시판] (16) 댓글 등록(comment.php) (0) | 2022.01.17 |
---|---|
[웹게시판] (15) 게시글 삭제(delete.php) (0) | 2022.01.17 |
[웹게시판] (13) 게시글 수정(modify.php) (0) | 2022.01.17 |
[웹게시판] (12) 회원정보 등록(join_action.php) (0) | 2022.01.17 |
[웹게시판] (11) 회원가입(join.php) (0) | 2022.01.17 |