이번에는 CRUD 기능의 마지막 퍼즐인 글 삭제(Delete) 기능을 구현해 보겠다.
서버에 저장된 파일을 물리적으로 제거하는 unlink() 함수의 사용법도 함께 알아보자.
이전 포스트
php, CRUD 글 수정 (feat. rename 함수)
php를 이용한 CRUD 중 글 수정(Update) 기능을 구현합니다. 코드를 줄여주는 짧은 출력 태그와 파일명을 변경하는 rename() 함수, 그리고 input type=hidden의 활용법을 예제 코드와 함께 정리합니다.
글 삭제
CRUD 중에서 Delete, 삭제 기능이 가장 간단한 편이다.
만드는 것은 어렵지만 부수는 것은 쉽다는 점은 프로그래밍에서도 마찬가지인 듯하다.
<?php if(isset($_GET['id'])) { ?>
<a href="update.php?id=<?=$_GET['id']?>">update</a>
<form action="delete_process.php" method="POST">
<input type="hidden" name="id" value="<?=$_GET['id']?>">
<input type="submit" value="delete">
</form>
<?php } ?>
삭제 기능을 추가한 코드다.
이전 포스트의 글 수정 기능과 마찬가지로 글을 클릭한 후에 삭제 버튼이 보이도록 if문 안에 삭제 폼을 넣었다.
삭제는 데이터에 큰 변화를 주는 작업이기 때문에 URL에 노출되지 않는 POST 방식을 사용한다.
unlink()
<?php
unlink('data/'.$_POST['id']);
header('Location: /index.php');
die;
?>
unlink() 함수는 지정된 경로의 파일을 삭제하는 php 내장 함수다.
사용자가 삭제 버튼을 눌러 보낸 id 값이 "HTML"이라면, data/HTML 파일을 찾아 서버 하드디스크에서 영구적으로 지워버린다.
실제 웹사이트를 만들 때는 이렇게 하지 않고 데이터베이스를 사용하지만, 어쨌든 CRUD가 이런 식으로 돌아간다는 흐름은 배웠다.
이제 생활코딩의 php 수업 영상도 거의 끝을 향해 가고 있다.
다음 포스트
php, 중복된 코드를 리팩토링 (feat. require와 include)
php 웹 애플리케이션의 규모가 커지며 발생하는 중복 코드를 리팩토링하고 모듈화하는 방법을 알아봅니다. require와 include의 에러 처리 방식 차이를 비교하고, 함수 중복 정의를 방지하는 require_once의 필요성을 정리합니다.
이 글이 도움이 됐거나 유익했다면 스크롤을 조금만 더 내려서 댓글을 남겨주세요.
(비로그인도 가능합니다!)
응원이나 피드백이 담긴 댓글은 제가 계속 블로그를 해나갈 수 있는 원동력이 됩니다. 😊
지인에게 보여주고 싶은 글이었다면 URL을 복사해서 메신저나 소셜 미디어에 공유해 주세요.
응원이나 피드백이 담긴 댓글은 제가 계속 블로그를 해나갈 수 있는 원동력이 됩니다. 😊
지인에게 보여주고 싶은 글이었다면 URL을 복사해서 메신저나 소셜 미디어에 공유해 주세요.
0 Comments
댓글 쓰기
🔸 댓글은 블로그 운영자의 승인 후에 블로그에 표시됩니다.
🔸 비로그인 방문자 분께서는 '익명'보다 이름/URL로 댓글을 남겨주시면 감사하겠습니다. (URL은 생략 가능합니다.)
🔸 구글 로그인 방문자는 '알림 사용'에 체크를 하시면, 남겨주신 댓글에 대한 답글 알림을 메일로 받아볼 수 있습니다. 📩