본문 바로가기

PHP/게시판 만들기27

여러 개 파일 첨부하기 여러 개의 파일을 첨부하는 것도 그리 어렵지 않다. uploadedfile[]같 배열값으로 넘겨주면 된다.$max_file_num = 3; //업로드할 파일 갯수 지정 echo "\n"; for($i=0; $i 파일 첨부 (1M이하)  \n"; } echo "\n"; 그리고 처리하는 부분에서 for문을 돌리면 된다.$file_count = count($_FILES['uploadedfile']['name']);$count = $file_count; for($i=0; $i  위에서 $count 변수는 실제 업로드된 갯수를 말한다. 로드를 3개까지 할 수 있다면, 실제로는 하나만 업로드를 할 수도 있기 때문에 별도로 체크를 했다. 아마도 이런 식으로 하면 여러 개의 파일을 업로드 하는데도.. 2008. 11. 30.
파일 첨부하기 파일 업로드를 구현하는데 많은 시간이 걸렸다. 아니 정확히 말하면 업로드된 파일을 수정하는데 시간을 많이 잡아먹었다. 첨부파일을 하나 올리는 것은 그리 어렵지 않게 했으나, 욕심이 생겨 처음부터 3개 정도의 파일을 올리는 것이 좋겠다 싶어 3개의 파일을 첨부할 수 있도록 했다. 뭐 이것도 그럭저럭 됐다. 그런데 문제는 올려진 파일을 수정하는데서부터 어려움을 겪기 시작했다. 파일이 3개다 보니 수정 시에 체크할 것도 많아지고, 제대로 동작이 안되는 일이 빈번했다. 체크된 파일만 삭제해야 하거나 기존 첨부파일은 그대로 두고 새롭게 파일을 올리거나, 기존 첨부파일을 덮어쓰거나...여러 가지 경우의 수가 발생했는데 이것을 다 핸들링하는 것이 좀 버거웠다. 그래서, 결국 하나의 파일만 우선 첨부하거나 첨부파일이 .. 2008. 11. 30.
검색 기능 추가 검색 기능을 추가했다. list.php 상단에 검색 옵션을 체크하고 검색 옵션이 있을 경우 별도의 쿼리문을 돌려 페이지를 보여주는 식이다. //검색옵션 관련 $search_option = $_POST[search_option]; $keyword = $_POST[keyword]; if(strlen($keyword) > 0) { switch ($search_option) { case "all": $sql = "SELECT *FROM board WHERE (title LIKE '%$keyword%' AND reply_no=0) OR (content LIKE '%$keyword%' reply_no=0) ORDER BY main_no DESC"; break; case "title": $sql = "SELECT *.. 2008. 11. 22.
답글 수정 및 삭제하기 답글 수정 및 삭제하기 답글을 어떻게 수정할까 하다가 아무래도 답글이 많이 달리면 현재 창에서 수정하기가 힘들테니 새로운 창을 띄워서 하기로 했다. 우선 read.php에서 답글을 뿌려주는 부분에 수정과 삭제 링크를 걸고, edit_reply.php와 edit_reply_ok.php를 새로 작성했다. 하지만 이전에 본문 수정과 삭제 코딩을 해두었기 때문에 한결 편하게 작성이 가능하다. edit_reply.php의 앞 부분. edit_reply_ok.php에서 주의할 부분만 보면,$pw_sql = "SELECT passwd FROM board WHERE rel_no=$main_no AND reply_no=$reply_no"; 위의 SQL문에서 앞서 넘겨받은 main_no를 rel_no에 대입하는 부분이다... 2008. 11. 21.
답변 쓰기 기능 작성 (중간 소스정리) 답변하기 작성 와우, 지금까지 만들었던 게시판 기능 중에 제일 복잡하지 않았나 싶다. Thread 방식이라고 해야 하나? 지메일과 같은 형태로 코딩을 하고 싶었다. (아 물론 지메일은 Ajax 방식이라고 하더라...여기까지 건드리기에는 내공 부족이고...그냥 보이는 형태를 그렇게 하고 싶단 얘기다.) 아웃룩을 쓰다가 지메일을 쓸 때는 처음엔 도대체 어떻게 읽고 찾아야 하는지 헷갈렸지만 이제는 지메일처럼 주루룩 관련 내용들이 엮어져 있다보니 이게 매우 편리해졌다. (참고로 맥의 iMail에서는 제목을 클릭하면 주고 받은 관련 이메일들의 제목도 하이라이팅해줘서 매우 시각적으로 찾기가 쉽다.) 답변하기(reply.php)도 edit.php와 edit_ok.php의 소스를 그대로 가져와 손을 본다. 여기서 중요.. 2008. 11. 20.
페이지 수 출력하기 얼추 페이지 수 출력하기를 했으나 나미지 부분을 완성하는게 생각보다 복잡해서 모두 삭제를 하고"PHP4 쇼핑몰 만들기"란 책에 나와 있는 루틴을 참고해서 수정을 했다.(나중에 좀더 좋은 루틴이 생각나면 수정하기로 하고 일단은 패스~) 1) mysql_data_seek($result, $start_no); $total_page = ceil(($total_article)/$limit);?> 아래 부분은 지정된 갯수만큼 게시판에 글을 출력하고 빠져나오는 while() 구문이다.한 페이지에 보여줄 글 갯수는 상단에서 $limit = 10; 으로 10개만 출력이 되도록 지정을 했다. $line = 0; //get data array from query result and show on the bo.. 2008. 11. 15.
조회수 올리기 읽은 글의 조회수 올리는 기능은 그냥 SQL의 UPDATE 구문을 사용했다. 2008. 11. 14.
게시판 만들기 중간정리 (소스 첨부) 한 차례 개념설계도 변경이 있었고 그에 따라 DB 설계도 조금 바뀌었다. 또, 일부 소스에서는 HTML코드가 누락된 경우도 있었다. 그래서 이 쯤해서 소스들을 한번 정리할 필요성이 생겼다. 첨부파일을 받아 압축을 풀고 http://localhost/create_db.php 를 수행하면 중간에 변경된 테이블까지 모두 적용되게 수정했다. 그 전에 create_db.php 에 있는 mySQL 접속 아이디나 비밀번호는 본인에 맞게 수정을 해야한다. ****** 이건 강좌가 아니다. -_-; ********* 그냥 나만의 게시판을 가지고 싶어서 여기저기서 소스를 참고해 만들고 있는 것 뿐이고, 그래서 언제 어디서라도 기억을 되짚어 볼 필요가 있을 때 참고하고자 정리하고 있는 것 뿐이다. 그래서, 다른 고수분들이 .. 2008. 11. 14.
글 삭제하기 작성 글 삭제하는 기능은 수정 기능보다 좀 더 간결하다.우선 앞서 작성한 edit.php와 edit_ok.php 파일을 각각 delete.php와 delete_ok.php 로 복사한 후 아래와 같이수정하면 된다. 글 삭제하기"> 비밀번호를 입력하세요: '));" value="취 소">   delete.php에서는 자바스크립트의 내용을 변경하고, 비밀번호를 입력받는 폼으로 수정한다.delete_ok.php에서는 입력받은 패스워드와 일치 여부를 확인 후 DB에서 해당 글을 삭제하면 된다. 2008. 11. 14.