개발 37

[14주차] 문의 게시판 구현 #2 - 비밀번호 인증

벌써 웹 개발의 마지막 포스팅이다 마지막으로 구현해볼 것은 비회원도 이용할 수 있는 문의 게시판이다 비회원도 이용할 수 있기 때문에 비밀번호로 게시글을 잠금할 수 있는 기능을 만들어볼 것이다 qna_write.php 문의 게시판 글쓰기 제목 내용 전화번호 비밀글 설정 목록 작성 자유 게시판과의 차이점은 전화번호를 넣는 칸이 생겼고 비밀글 설정 버튼이 추가되었다는 점이다 이 전화번호를 통해 비밀글을 열람할 수 있다 비밀글 설정 체크박스를 체크하면 lock_post라는 문의 게시판db 컬럼에 저장한다 $lockpost는 잠겼을 때 1, 열렸을 때 0이다 작성 버튼을 누르면 작성한 값을 qna_write_proc.php로 전송한다 qna_write_proc.php

개발/웹 개발 2023.06.27

[14주차] 문의 게시판 구현 #1 - 문의 글 작성

배너만 만들어두고 여태껏 놔두기만 했던 문의게시판을 만들어보겠습니다. 이제 웹 개발 프로젝트도 막바지에 다가서고 있습니다. 메인 페이지에서는 이 배너를 누르면 문의게시판으로 이동합니다 하지만 이 게시판은 비회원도 이용할 수 있어야 하므로 첫 페이지 오른쪽 상단에도 문의 게시판 버튼을 만들어뒀습니다. 문의 게시판 전체적인 틀은 자유게시판과 동일하지만 글들을 따로 관리하기 위해 DB에 qna_board라는 새 테이블을 만들어주겠습니다. 게시판에서 사용하는 DB 파일과 비슷한 컬럼과 타입으로 만들거라 board 테이블을 확인해보겠습니다. 총 9개의 컬럼에 number를 key로 사용하고 auto_increment 설정이 되어있습니다. 좋아요 기능과 조회수기능은 문의 게시판에 굳이 필요없을 것 같으니 제거하겠습..

개발/웹 개발 2023.06.25

[14주차] 마이 페이지 구현 #3 - 비밀번호 변경 기능

이제 마이 페이지 마지막 포스팅입니다. 3번째! 이번엔 비밀번호 변경 기능을 만들어보겠습니다. 마이페이지입니다. 비밀번호 변경 페이지로 갈 수 있는 버튼을 하나 만들었습니다. 마이 페이지에 추가된 버튼의 코드는 다음과 같습니다. mypage.php 수정 비밀번호 변경 메인 페이지로 간단히 a 태그의 href 속성을 통해 클릭 시 password_change.php로 이동합니다. 변경 버튼을 누르면 비밀번호를 확인하는 창이 나옵니다. 꽤 깔끔하죠? password_change.php의 코드는 다음과 같습니다. password_change.php 비밀번호 확인 Password 확인 이 페이지에서는 단순히 비밀번호를 입력받고 그 값을 pass_proc.php로 전달합니다. pass_proc.php에서 검증한 ..

개발/웹 개발 2023.06.24

[13주차] 마이 페이지 구현 #2 - 개인 정보 수정 기능 구현

이번엔 #1에서 만들었던 마이 페이지에서 수정 버튼을 누르면 개인 정보를 수정할 수 있는 페이지를 구현해보겠습니다. 저번에 구현했던 마이페이지에서 수정 버튼을 추가하고 수정을 처리할 페이지로 연결시켜줍니다. mypage.php 이메일 휴대전화 번호 주소 수정 메인 페이지로 이메일이나 휴대전화번호 등 마이 페이지에서 DB에 연결해 출력해 놓고 있을 뿐, 이 값을 mypage_update.php에 보낼 필요는 없을 것 같습니다. 다시 연결하면 되니까요 그래서 a 태그를 이용해 href 속성을 부여하고 mypage_update.php로 연결시켰습니다. 잘 구현된 것 같습니다. 이제 mypage_update.php를 만들어보겠습니다. mypage_update.php (완성 전) 이메일 휴대전화 번호 주소 수정 ..

개발/웹 개발 2023.06.22

[13주차] 마이 페이지 구현 #1 - 자신의 정보 확인

드디어 게시판 구현이 끝났습니다. 이젠 마이페이지를 구현해볼텐데요. 처음엔 간단히 본인의 계정의 정보를 확인해주는 페이지를 구현하고 차후에 정보를 수정할 수 있는 페이지를 만들겠습니다. mypage.php 파일을 생성해줍니다. mypage.php 이메일 휴대전화 번호 주소 회원 가입 페이지의 코드를 붙여넣어서 틀을 만들었습니다. 세션이 시작하고 바로 $login_id 변수에 세션 아이디를 받았습니다. 그리고 DB에 연결하기 위해 코드를 작성합니다. 아까 받은 $login_id 변수는 쿼리문의 WHERE 조건문에 검증을 위해 사용됩니다. (차후에 SQL Injection 대응할 것) DB값들은 $myp에 저장될 것입니다. Bootstrap의 link태그와 script태그를 추가하고 상단 바를 추가했습니다...

개발/웹 개발 2023.06.20

[13주차] 게시판 구현 #10 - 날짜,조회,추천 순 정렬 기능

저번 #9번 게시판 구현 글에서 좋아요 / 좋아요 취소 기능까지 구현에 성공했습니다. 이번에는 날짜 순, 조회수 순, 추천 순으로 정렬하는 기능을 구현해보겠습니다. 게시판 첫 화면에서 정렬 구현 우선, 현재 url 값을 받아오기 위해 $_SERVER['REQUEST_URI']함수로 $current_url이라는 변수에 저장합니다. //현재 URL을 받음 $current_url = $_SERVER["REQUEST_URI"]; 그 후, 저번 제목 / 작성자별 검색에서 사용했던 select와 option태그를 긁어와서 사용해보겠습니다. 게시판을 나타내는 noticeboard.php 다음 코드를 적당한 위치에 추가해줍니다.

개발/웹 개발 2023.06.19

[13주차] 게시판 구현 #9 - 좋아요 / 좋아요 취소 기능

이제 게시판에 좋아요와 좋아요 취소 기능을 구현해보겠습니다. 우선 생각한 대략적인 개발흐름은 이렇습니다. 1 ) 한 회원이 좋아요 누르면 그 회원 db에 특정 게시글에 좋아요 눌렀는지 추가 회원 db에 어느어느 게시글에 좋아요 눌렀는지 배열? 이든 뭐든 일단 데이터로 저장되어야 함 > 이 기록을 like_manager라는 새로운 DB에 할 것입니다. 2 ) 게시글은 얼마나 좋아요가 눌렸는지 카운팅 > 이건 board 게시판에 기록합니다. 3 ) 그리고 작성자가 본인이면 좋아요 안됨 (조건문 사용) 이 3가지 항목을 만족시키려면 어떻게 구조를 짜야할까요? 터미널에다가 desc board; 를 입력해서 각 컬럼의 상태를 봅니다. 제 DB에는 언젠가 구현할 좋아요 기능을 위해 thumbup 컬럼이 만들어져 있..

개발/웹 개발 2023.06.18

[12주차] 게시판 구현 #8 - 게시판 날짜 지정 검색 구현

이번에는 게시판에 날짜를 지정해서 검색하는 기능을 구현해보겠습니다. 다음 코드를 form 태그 안 쪽으로 넣어준다. noticeboard.php 이렇게 되면 예쁘게 input 태그가 생겼습니다. GET 파라미터로 첫 번째 INPUT 값에서 pre_date를 받고 이를 시작일로 인식하게 합니다. 두 번째 INPUT 값에서 end_date를 받고 이를 종료일로 인식하게 합니다. 그리고 페이징 구현 부분에서 전달되는 파라미터가 있는 모든 url코드에 pre_date와 end_date를 추가해줍니다. 각 URL마다 변형할 것 없이 똑같이 해주면 됩니다. 이렇게 파라미터가 전해지는 URL에 모두 pre_date와 end_date 파라미터 추가가 완료되었습니다. 그런데 내가 만든 웹사이트에서는 게시판 DB에 작성날..

개발/웹 개발 2023.06.09

PHP에서 다른 파일 포함하기 - include, require

웹 서버를 열고 사이트를 작성하다보면 오류가 나거나 수정이 필요할 때가 있습니다. 그럴 때, php파일 수가 적으면 다행이지만, 파일 수가 많고 고쳐야 할 변수의 수가 쏟아진다면 정말 멘붕이 아닐 수 없습니다... 그럴 때 사이트를 작성하면서 DB연결이라던지, 통용되는 변수들을 PHP 파일에 모아놓고 다른 파일에 포함하는 식으로 프로젝트를 작성해가면 PHP 파일 하나만을 수정하면 해결되는 경우가 많습니다. 사용되는 함수는 다음과 같습니다. include include_once require require_once test를 위해 quest.php 파일과 require.php파일을 만들어줍니다. require.php에는 Hi! 라는 문자열을 $name 이라는 변수에 저장합니다. include는 파일이 없어..

개발/웹 개발 2023.05.29

[9주차] 게시판 구현 #7 - File Upload 기능 만들기

이번에는 File Upload 기능을 구현해보겠습니다. 해킹에 있어 File Upload 라는 공격이 있는데, 차후에 이 공격을 기반으로 한 웹 쉘을 이용해 제가 만든 웹 서버를 탈취해볼 계획입니다. 우선, 데이터베이스에 File 컬럼을 추가해줍니다. 여태까진 터미널에서 데이터베이스에 컬럼을 추가하거나 다양한 작업을 했지만, 이번에는 phpmyadmin을 한번 사용해보겠습니다. localhost/phpmyadmin로 들어가면 접속할 수 있습니다. 원하는 테이블로 이동합니다. 스크롤을 내리면 몇 개의 컬럼을 추가할지, 어디에 추가할지 선택할 수 있습니다. 실행 버튼을 누릅니다. 그럼 이렇게 이름과 종류를 선택할 수 있습니다. varchar(100)으로 설정해주고 NOT NULL을 위해 NULL 체크를 풀어..

개발/웹 개발 2023.05.27