이번에는 CRUD 기능의 꽃이라고 할 수 있는 글 수정(Update) 기능을 구현하고 파일의 이름을 변경해 주는 rename() 함수의 활용법에 대해 알아보겠다.
이전 포스트
php, CRUD 글 생성 (feat. file_put_contents와 header 함수)
php를 이용한 CRUD 중 글 생성(Create) 기능을 구현합니다. HTML POST 방식으로 전송된 데이터를 서버에 파일로 저장하는 file_put_contents 함수와, 작업 완료 후 해당 페이지로 즉시 이동시키는 header 함수도 함께 정리합니다.
글 수정
글을 쓰는 것보다 수정을 하는 것이 뭔가 조금 더 복잡하면서 해야 할 일들도 많다.
글을 수정하는 페이지로 가는 링크가 평소에는 보이지 않다가 목록에서 글을 클릭한 후에 보이게 해야 하고 (if문 이용), 수정할 글의 내용이 form에 채워지게 하는 등의 기능을 추가해야 한다.
<?php if(isset($_GET['id'])) { ?>
<a href="update.php?id=<?php echo $_GET['id']; ?>">update</a>
<?php } ?>
글을 클릭한 후에야 글 수정 페이지로 가는 링크가 보이게 하는 코드다.
URL 파라미터에 id 값이 있을 경우에만 링크가 생기도록 했다.
변수만 출력할 때는 <?= ?>
<?php if(isset($_GET['id'])) { ?>
<a href="update.php?id=<?=$_GET['id']?>">update</a>
<?php } ?>
<?php echo $_GET['id']; ?>를 <?=$_GET['id']?>로 수정했다.
변수를 출력할 때는 이렇게 하면 코드를 더 짧게 줄일 수 있다.
rename()
<?php
rename('data/'.$_POST['old_title'], 'data/'.$_POST['title']);
?>
rename() 함수는 이름 그대로 파일이나 디렉터리(폴더)의 이름을 바꾸거나 위치를 이동시킬 때 사용하는 php 내장 함수다.
첫 번째 인자에는 이전 이름이 들어가고, 두 번째 인자로 새로운 이름이 들어가면 된다.
<input type="hidden">
<input type="hidden" name="old_title" value="<?=$_GET['id']?>">
php 코드가 아닌 HTML 코드이지만, 관련된 내용이니 짚고 넘어간다.
웹사이트의 방문자가 뭔가를 서버로 제출하는 버튼을 클릭했을 때, 방문자가 입력한 적이 없는 어떤 특정한 값을 서버로 전송할 때는 <input> 태그의 type 속성에 hidden을 넣어야 한다.
이것으로 수정 전의 원래 제목을 rename() 함수의 첫 번째 인자로 넣을 수 있게 된다.
다음 포스트
php, CRUD 글 삭제 (feat. unlink 함수)
php를 이용한 CRUD의 마지막 단계인 글 삭제(Delete) 기능을 구현합니다. 보안을 위해 URL에 데이터가 노출되지 않는 POST 방식으로 삭제 요청을 처리하는 이유와 서버 내 파일을 영구적으로 삭제하는 unlink() 함수의 사용법을 알아봅니다.
이 글이 도움이 됐거나 유익했다면 스크롤을 조금만 더 내려서 댓글을 남겨주세요.
(비로그인도 가능합니다!)
응원이나 피드백이 담긴 댓글은 제가 계속 블로그를 해나갈 수 있는 원동력이 됩니다. 😊
지인에게 보여주고 싶은 글이었다면 URL을 복사해서 메신저나 소셜 미디어에 공유해 주세요.
응원이나 피드백이 담긴 댓글은 제가 계속 블로그를 해나갈 수 있는 원동력이 됩니다. 😊
지인에게 보여주고 싶은 글이었다면 URL을 복사해서 메신저나 소셜 미디어에 공유해 주세요.
0 Comments
댓글 쓰기
🔸 댓글은 블로그 운영자의 승인 후에 블로그에 표시됩니다.
🔸 비로그인 방문자 분께서는 '익명'보다 이름/URL로 댓글을 남겨주시면 감사하겠습니다. (URL은 생략 가능합니다.)
🔸 구글 로그인 방문자는 '알림 사용'에 체크를 하시면, 남겨주신 댓글에 대한 답글 알림을 메일로 받아볼 수 있습니다. 📩