본문 바로가기

코딩공부/WEB2 - PHP

[13] PHP 글 삭제 기능 구현

목표 : 웹을 통해서 글을 삭제할 수 있도록 기능 추가

 

조건 

글을 보고 있을 때, 삭제 링크가 뜨도록 한다.

삭제는 form을 입력할 필요가 없다. delete.php 페이지는 필요 없고, delete_process.php로 바로 연결하면 된다.

 

 

GET 방식 삭제  ※주의※ 

 

1. index.php 에 delete 링크 추가

 

2. delete_process.php 파일 생성

php에서 디렉토리 내의 파일 삭제 기능 - unlink()

삭제 후, '홈' 페이지로 리다이렉트

<?php
  unlink('./data/'.$_GET['id']);
  header('Location: ./index.php');
 ?>

delete를 클릭하면 데이터가 삭제되고 홈으로 이동한다.

 

※ 주의 - 삭제 기능을 링크로 구현하면 안 됨

링크를 클릭하자마자 데이터가 삭제돼버리면, 이 주소를 카피해서 배포하면 링크를 클릭만 해도 데이터가 삭제되는 상황이 발행한다.

 

POST 방식 삭제

index.php 의 '삭제' 기능을 form으로 구현

* submit 의 value 값은 레이블이 된다.

<!-- index.html -->
<?php if(isset($_GET['id'])){ #id값이 있는 경우 true ?>
    <!-- <a href="update.php?id=<?php #echo $_GET['id'];?>">update</a> -->
    <a href="update.php?id=<?=$_GET['id']?>">update</a>
    <!-- GET 방식 삭제 안 됨. -->
    <!-- <a href="delete_process.php?id=<?=$_GET['id']?>">delete</a> -->
    <!-- POST 방식으로 삭제할 것 -->
    <form action="delete_process.php" method="post">
      <input type="hidden" name="id" value="<?=$_GET['id']?>">
      <input type="submit">
    </form>
<?php }?>

 

delete_process.php의 id값을 POST로 받아오도록 수정

# delete_process.php
<?php
  unlink('./data/'.$_POST['id']);
  header('Location: ./index.php');
 ?>

 

delete 버튼을 누르면 POST로 id값이 넘어가고 삭제 완료 후 홈페이지로 돌아온다.

 

 

 

 

'코딩공부 > WEB2 - PHP' 카테고리의 다른 글

[15] PHP 보안  (0) 2019.09.27
[14] PHP 파일로 모듈화 - require  (0) 2019.09.27
[12] PHP 글 수정 기능 구현  (1) 2019.09.26
[11] PHP 글 생성 기능 구현  (0) 2019.09.26
[10] PHP에서 FROM과 GET, POST  (0) 2019.09.26