php, CRUD 글 수정 (feat. rename 함수)

포스트 썸네일 이미지

이번에는 CRUD 기능의 꽃이라고 할 수 있는 글 수정(Update) 기능을 구현하고 파일의 이름을 변경해 주는 rename() 함수의 활용법에 대해 알아보겠다.




이전 포스트




글 수정


글을 쓰는 것보다 수정을 하는 것이 뭔가 조금 더 복잡하면서 해야 할 일들도 많다.

글을 수정하는 페이지로 가는 링크가 평소에는 보이지 않다가 목록에서 글을 클릭한 후에 보이게 해야 하고 (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() 함수의 첫 번째 인자로 넣을 수 있게 된다.




다음 포스트

이 글이 도움이 됐거나 유익했다면 스크롤을 조금만 더 내려서 댓글을 남겨주세요. (비로그인도 가능합니다!)
응원이나 피드백이 담긴 댓글은 제가 계속 블로그를 해나갈 수 있는 원동력이 됩니다. 😊

지인에게 보여주고 싶은 글이었다면 URL을 복사해서 메신저나 소셜 미디어에 공유해 주세요.

댓글 쓰기

0 Comments

문의하기 양식