목표 : 웹을 통해서 글을 삭제할 수 있도록 기능 추가
조건
글을 보고 있을 때, 삭제 링크가 뜨도록 한다.
삭제는 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 |