STUDY/PHP

[ 생활코딩 web2 - php ] 3. CRUD 구현

JUNGY00N 2022. 12. 18. 22:55

- post 방식으로 받아온 데이터의 값을 얻는 방법 : $_POST['데이터이름']

$_POST['title']

- 파일 쓰기 함수 : file_put_contents()

file_put_contents('./data/'.$_POST['title'],$_POST['body']);

- php의 redirect 함수 : header('Location: ~');

header('Location: /index.php?id='.$_POST['title']);

쓰기 기능 구현 (CREATE)

- create 링크 클릭 시 title과 body입력 칸 나옴

- title, body 입력 후 create 클릭 시 해당 내용의 파일 생성되며 

- create한 내용 보이도록 링크 redirect

<a href="create.php">create</a>
    <form action="create_process.php" method="post">
        <p><input type="text" name="title" placeholder="title"></p>
        <p><textarea name="body" placeholder="body" rows=6></textarea></p>
        <p><input type="submit" value="create"></p>
    </form>
<?php
    file_put_contents('./data/'.$_POST['title'],$_POST['body']);
    header('Location: /index.php?id='.$_POST['title']);
?>


수정 기능 구현 (UPDATE)

- 수정하고자 하는 항목 클릭 시 update 링크 버튼 생성 

- update 링크 클릭 시 현재의 title, body값을 수정할 수 있는 form태그 보임 

- 내용 수정 후 update 클릭하면 해당 항목의 내용 출력 페이지로 이동 

<?php if (isset($_GET['id'])) {
   echo '<li><a href="update.php?id=' . $_GET['id'] . '">update</a></li>';
} ?>
<form action="update_process.php" method="post">
        <input type="hidden" name="old_title" value=<?= $_GET['id']?>>
        <p><input type="text" name="title" value=<?= print_title();?>></p>
        <p><textarea name="body" placeholder="body" rows=8 cols=40><?=print_description();?></textarea></p>
        <p><input type="submit" value="update"></p>
    </form>
<?php
    rename('./data/'.$_POST['old_title'],'./data/'.$_POST['title']);
    file_put_contents('./data/'.$_POST['title'],$_POST['body']);
    header('Location: /index.php?id='.$_POST['title']);
?>


삭제 기능 구현 (DELETE)

- delete 버튼 클릭 시 해당 항목 삭제되며 (파일 삭제) 메인화면으로 이동 

 

- 파일 삭제하는 함수 : unlink()

unlink('./data/'.$_POST['id']);

 

<form action="delete_process.php" method="post">
      <input type="hidden" name="id" value="<?=$_GET['id']?>">
      <li><input type="submit" value="delete"></li>
</form>
<?php
    unlink('./data/'.$_POST['id']);
    header('Location: index.php');
?>