[신입14] PHP(5) - 글 생성, 수정, 삭제 기능 구현하기

SeoChanhee·2021년 2월 2일
0

💾 정보시스템의 핵심(CRUD)

  • Create(입력), Read(출력), Update, Delete

< PHP에서 글생성 기능 구현하기 >

<!--index.php -->
<a href="create.php">create</a>
<!-- create.php (duplicated index.php)-->
<form action="create_pocess.php" method="post">
  <input type="text" name="title" placeholder="Title">
  <textarea name="description" placeholder="Description"></textarea>
  <input type="submit">
</form>
// create_process.php
file_put_contents('data'.$_POST['title'], $_POST['description']);
header('Location: /index.php?id='.$_POST['title']); // redirection : 사용자를 다른 페이지로 보내는 기능

< PHP에서 글수정 기능 구현하기 >

<!-- index.php -->
<a href="create.php">create</a>
<?php if(isset($_GET['data'])) { ?>
<a href="update.php?id=<?=$_GET['id']?>">update</a>
<!-- <a href="update.php?id=<?php echo $_GET['id']; ?>">update</a>와 동일한 코드 -->
<?php } ?>
// update.php (duplicated index.php)
<form action="update_pocess.php" method="post">
  <input type="hidden" name="old_title" value="<?=$_GET['id']?>"> 
  <input type="text" name="title" placeholder="Title" value="<?php print_title(); ?>">
  <textarea name="description" placeholder="Description" value="<?php print_description(); ?>"></textarea>
  <input type="submit">
</form>
  • <input type="hidden"> : 사용자에게는 노출되지는 않지만 데이터는 전송되는 태그
  • value : 기본값을 설정하는 속성
// update_process.php
rename('data'.$_POST['old_title'], 'data'.$_POST['title']); // 파일명 변경
file_put_contents('data/'.$_POST['title'], $_POST['description']);  // 수정된 파일에 description 기록
header('Location: /index.php?id='.$_POST['title']);

< PHP에서 글삭제 기능 구현하기 >

<!-- index.php -->
<a href="create.php">create</a>

<?php if(isset($_GET['data'])) { ?>
<a href="update.php?id=<?=$_GET['id']?>">update</a>
<a href="delete_process.php?id=<?=$_GET['id']?>">delete</a>
<form action="delete_process.php" method="post">
  <input type="hidden" name="id" value="<?=$_GET['id']?>">
  <input type="submit" value="delete">
</form>
<?php } ?>
  • deletedelete.php 경로가 불필요하다.
  • submitvalue버튼의 label이 된다.
// delete_process.php
unlink('data/'.$_POST['id']);
header('Location: /index.php');
  • unlink를 할 때 GET 방식을 사용하게 되면 그 링크에 접속만 해도 파일이 삭제되기 때문에 POST방식을 사용해야 한다.


© 마침

  • <?php ~ ?>에서 php는 서버 설정에 따라 쓰지 않아도 됨(<? ~ ?>).
  • php 태그 안에 html을 그냥 작성할 수는 없음.
// 이렇게는 사용 불가
<?php
  if(isset($_GET['data'])) { <a href="update.php">update</a> }
?>

출처: 생활코딩: WEB2 - PHP

0개의 댓글