본문 바로가기

웹 개발

(28)
[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에 작성날..
PHP에서 다른 파일 포함하기 - include, require 웹 서버를 열고 사이트를 작성하다보면 오류가 나거나 수정이 필요할 때가 있습니다. 그럴 때, php파일 수가 적으면 다행이지만, 파일 수가 많고 고쳐야 할 변수의 수가 쏟아진다면 정말 멘붕이 아닐 수 없습니다... 그럴 때 사이트를 작성하면서 DB연결이라던지, 통용되는 변수들을 PHP 파일에 모아놓고 다른 파일에 포함하는 식으로 프로젝트를 작성해가면 PHP 파일 하나만을 수정하면 해결되는 경우가 많습니다. 사용되는 함수는 다음과 같습니다. include include_once require require_once test를 위해 quest.php 파일과 require.php파일을 만들어줍니다. require.php에는 Hi! 라는 문자열을 $name 이라는 변수에 저장합니다. include는 파일이 없어..
[9주차] 게시판 구현 #7 - File Upload 기능 만들기 이번에는 File Upload 기능을 구현해보겠습니다. 해킹에 있어 File Upload 라는 공격이 있는데, 차후에 이 공격을 기반으로 한 웹 쉘을 이용해 제가 만든 웹 서버를 탈취해볼 계획입니다. 우선, 데이터베이스에 File 컬럼을 추가해줍니다. 여태까진 터미널에서 데이터베이스에 컬럼을 추가하거나 다양한 작업을 했지만, 이번에는 phpmyadmin을 한번 사용해보겠습니다. localhost/phpmyadmin로 들어가면 접속할 수 있습니다. 원하는 테이블로 이동합니다. 스크롤을 내리면 몇 개의 컬럼을 추가할지, 어디에 추가할지 선택할 수 있습니다. 실행 버튼을 누릅니다. 그럼 이렇게 이름과 종류를 선택할 수 있습니다. varchar(100)으로 설정해주고 NOT NULL을 위해 NULL 체크를 풀어..
[8주차] 게시판 구현 #6 - 조회수 카운트 다음 코드를 추가해줍니다. UPDATE 같은 SQL 쿼리함수를 사용할 때 대문자를 사용해야 함수로 취급됩니다. //게시판 DB 연결 $con = mysqli_connect('localhost','root','비밀번호','database이름'); //게시판 내용 보여주기 ~~~이하 생략 //클릭할 때 조회수 1 증가 $hit = $board['hit']; $hit = $hit + 1; $hit_query = "UPDATE board SET hit = '".$hit."'WHERE number ='".$bno."'"; $hit_result = $con->query($hit_query); 저장하고 게시글을 클릭하니 조회수가 1 증가했다. 그런데 클릭했을 시에는 조회수가 증가한 게 안보이고 다시 목록으로 돌아가야..
[8주차] 게시판 구현 #5 - 검색 기능 (제목/작성자/내용별) 이번에는 게시판 하단에 검색 기능을 추가해볼 겁니다. 아무래도 데이터가 많아질수록 일일히 페이징을 하면서 넘기는거보다 검색기능을 주로 사용하게 될 것 같습니다. BootStrap에 들어가니 괜찮은 입력-버튼 폼이 많이 보입니다. 처음 저 두번째 버튼을 갖다가 썼는데 css 기본설정값에 오른쪽 정렬이 포함되어있는건지 중앙 정렬이 하도 안되서 id와 class를 싹 빼고 기본 input으로 바꿨습니다. 정말 빼니까 정렬이 되었습니다. 코드는 이렇습니다. 검색 이제 검색 버튼을 클릭했을 때 form 태그를 이용해 원하는 검색 정보를 보여줄 수 있도록 type을 submit으로 바꾸고 form 태그로 감싸겠습니다. 그리고 처리 페이지에서 $_GET을 사용할수 있도록 name을 부여하겠습니다. 검색 그 후, se..
[7주차] 게시판 구현 #4 - 페이징 만들기 이 구현 코드는 대부분 https://blog.naver.com/bgpoilkj/221265496444 이 블로그를 참조하여 작성되었습니다. 저번에 구현시킨 것에 이어서 게시판 페이징 하는 걸 해봅시다. 우선, noticeboard.php 를 좀 수정해볼게여 noticeboard.php 자유게시판 원하는 내용을 자유롭게 작성해주세요! 번호 제목 글쓴이 작성일 조회수 추천수
[6주차] 게시판 구현 #3 - 수정, 삭제 수정 기능 이번에는 게시판 수정 기능을 구현해볼 겁니다 현재까지 구현된 기능은 게시판 리스트 구현, 게시글 읽기, 게시글 쓰기 총 3개의 기능을 구현했다. modify.php를 생성해줍니다. 일단 modify.php의 내용을 작성하기 전 write.php의 내용을 복사해서 modify.php에 붙여넣어줍니다. 왜냐면 디테일만 조금 다를 뿐, 전체적인 틀은 비슷하기 때문이죠 그리고 글 내용을 읽는 read.php 에도 수정 버튼을 만들어 버튼을 클릭하면 modify.php로 이동하도록 코딩해줍니다. 게시판에서 아무 글이나 클릭하면 이런 버튼이 생겼습니다. 그럼 이 수정 버튼에 해당 글을 수정하는 페이지를 띄울 텐데, 냅다 modify.php로 보내는 게 아니라 get 방식으로 게시글의 number 값을 보..
[5주차] 게시판 구현 #2 - 게시글 읽기, 게시글 쓰기 게시판 글쓰기 간단히 글 작성폼을 만들어 테스트용 글을 만들어 작성을 눌러보았다. 쿼리문이 제대로 전달되지 않아 DB로 안가면 에러처리가 되게 해놨는데, 글쓰기 완료라고 떴으므로 DB에 잘 저장이 되었다. 실제로 SQL을 켜서 확인해봐도 글이 잘 추가되었다. 근데 게시판에서 새로고침을 아무리 눌러도 확인이 안됨.... 기존에 글 작성이 아니라 DB에 강제로 때려넣었던 1번 게시글만 확인이 된다. 일단 문제가 뭘까 싶어 DB를 보니 분명히 세션 아이디를 쿼리문에 넣게 코드를 짰는데 name이 전혀 추가가 안되고 있다. 혹시 SESSION 아이디가 안먹히나 싶어 메인 페이지에 썼던 session 아이디 확인을 해봤는데 잘되고 있었다. 혹시나 게시판 페이지에서 session이 안먹나 싶어 출력해보았지만 잘 출..