본문 바로가기
반응형

WEB HACKING/웹 해킹[실습]41

Php로 웹 개발하기 : 게시판(13) - 파일 확인 저번 포스팅에서는 파일을 업로드하는 기능을 구현했었다. 파일을 확인(View), 삭제(Delete), 다운로드(Download)하는 기능을 추가로 만들 것이다. 우선 파일 이름을 저장해놓아야 표시, 삭제, 다운로드할 때 사용할 수 있으므로 MySQL에 추가하자. ALTER table board add column `file` varchar(20); 이제 게시판에 글을 작성할 때, file을 업로드하면 파일 이름을 MySQL에 저장하고, file이 없으면 NULL을 저장하도록 코드를 추가해주자. [board_create.php] if($_FILES['upload_file'] != NULL){ $tmp_name = $_FILES['upload_file']['tmp_name']; $name = $_FILES[.. 2021. 12. 2.
Php로 웹 개발하기 : 게시판(12) - 파일 업로드 게시판의 주요 기능 중 Create 부분에 파일을 업로드하고 이를 확인할 수 있는 기능을 추가해보자. ① 파일 업로드 제목과 내용 밑에 input type을 file로 설정해서 파일 업로드 구역을 하나 넣어준다. 그런데, 이미지를 올리고 나중에 이를 가져오려면 내 로컬과 MySQL 중 어느 곳에 이미지를 저장하는 것이 좋을까 고민하다가 일단 내 로컬에 저장하기로 했다. 파일을 업로드할 때 이미지 주소를 생성하고, 그 주소를 사용해서 이미지를 불러오도록 하기 위해 일반적인 HTML 문서에서는 업로드된 파일이 어떻게 표시되는지 확인해보았다. 파일을 하나 업로드했는데 이미지는 뜨지 않고 파일명만 떴다. form에 enctype="multipart/form-data"를 추가하고 input name을 (file로.. 2021. 11. 30.
Php로 웹 개발하기 : 게시판(11) - 좋아요 이번에는 게시판에 마음에 드는 글에 좋아요를 누르는 기능을 만들어 보자. 원래는 views가 높은 순서대로 글을 출력하려고 했는데 좋아요가 많은 글을 추천하는 방식도 괜찮을 것 같다. 그런데 좋아요 기능을 추가하려면 어떤 사용자가 어떤 글에 좋아요를 눌렀는지 기억해야 하므로 각 사용자가 각 게시글에 대한 테이블이 하나 더 필요하다. 근데 테이블을 하나 더 만들지 말고, 1과 0으로 이루어진 배열로 표현해보자. 우선 게시글이 최대 25개만 있다고 가정하고 좋아요 column을 추가해주고, 좋아요 횟수를 기록할 column도 추가하자. ALTER table board add column `likes` varchar(25) default '0000000000000000000000000'; ALTER table.. 2021. 11. 28.
Php로 웹 개발하기 : 게시판(10) - 조회수 게시판에 조회수 기능을 추가해보자. 현재 게시판의 DB 테이블은 다음과 같은 형태를 가진다. 조회수에 해당하는 views를 default 값 0으로 넣어두었다. 조회수는 누군가 글을 클릭하면 올라간다. 누군가 글을 클릭하면, 해당 글의 id가 read.php의 파라미터로 넘어가고, read.php에서 해당 id를 가진 글을 불러온다. 따라서 read.php가 동작한다는 것은 누군가가 글을 클릭했다는 의미이므로, 해당 id를 가진 글을 불러온 후 해당 id의 views를 1 증가시키면, 조회수 기능이 구현되는 것이다. [read.php] $view_sql = "UPDATE board set views = views + 1 where id = {$id}"; mysqli_query($conn, $view_sq.. 2021. 11. 27.
Php로 웹 개발하기 : 게시판(9) - Pagination 게시판의 CRUD는 모두 구현하였다. 이번 포스팅에서는 출력되는 데이터의 개수에 따른 pagination을 넣어볼 것이다. ① 데이터 개수 구하기 mysqli_num_row() 함수를 사용하면 행의 개수를 구할 수 있다. ② 페이지 개수 구하기 한 페이지에 결과를 10개씩 출력하려면 몇 페이지가 나오는지 구해보자. $data_num = mysqli_num_rows($result); $page_num = ceil($data_num / 10); ceil 함수를 사용하면 간단하게 페이지 개수를 구할 수 있다. ③ pagination 생성 기존의 board.php의 하단에 pagination 부분을 만들어주고, for문을 사용해서 페이지 수를 출력해준다. 데이터 5개를 더 추가해서 2페이지가 뜨는지 확인해보자... 2021. 11. 21.
Php로 웹 개발하기 : 게시판(8) - Update 게시판의 주요 기능 CRUD 중 Create, Read, Delete는 모두 구현하였다. 이제 마지막 주요 기능인 Update를 구현해보자. 업데이트 기능의 흐름은 다음과 같다. 1. 삭제 기능과 마찬가지로 내가 작성한 글일 경우에만 수정 버튼을 띄워준다. 2. 수정 버튼을 클릭하면 update.php에서 글을 수정하는 페이지를 띄워준다. 3. update.php에서 글 수정 버튼을 누르면 board_update.php로 넘어가 MySQL과 연동하여 update를 한다. 수정은 생성(write.php - board_create.php)과 거의 비슷한 형태(update.php - board_update.php)로 구현할 것이다. 우선 read.php의 버튼 부분에 다음과 같이 수정 버튼을 추가해주자. 2021. 11. 20.