웹마스터 팁

식사들 하셨습니까??
요며칠전에 "두사부일체"를 봤는데 넘넘 우끼더군요..
특히.. 학교가기 이전에 "대가리"랑 그 부하들이 학원알아보는 장면에서

"대가리" 왈 : "근데 그긴 졸업장도 주냐?"
"밑에넘" 왈 : "뭐 돈주면 주것죠? "

ㅋㅋ 이 대목이 참 우겼어여.. ^^

자자.. 이제 본격적으로 강좌에 들어가야죠..
이번 시간이 기본게시판 만들기 마지막시간입니다.
이 강좌를 끝으로 기본 게시판은 완성이 되며.. 이제 추가적인.. 기능을 구현하도록하겠습니다.

이때까지 기본 강좌에 사용된 소스파일은 전부 압축해서 자료실에 올려두겠습니다.
공부하실분은 자료실에서 다운받아가시면 됩니다.
디비 테이블만 만들면.. 이 소스로도 충분히 게시판이 된답니다..^____^

자.. 오늘 할일은.. 글수정, 글삭제 입니다.

우선 글삭제부터 할게요.. 글삭제가 간단하거든여..^^
걍 지워버리면 되니까요..^__^
근데 아무나 지우게하면 안되겠죠?? 글쓴 사람만 지워야 겠죠??



그러기 위해서.. 글작성시 입력한 패스워드를 다시 요구하는 폼이 있어야 합니다.
그리고 패스워드를 입력하면 입력한 패스워드가 정확한지를 확인하는 절차를 거친후
정확하다면 글을 삭제하게 해야합니다.
이 과정을 소스로 보면 다음과 같습니다.



앞에서도 여러번 말했지만.. 항상 $db변수는 hidden으로 넘겨줘야 합니다.
그리고 글을 삭제할때 삭제할 글의 번호도 넘겨줘야 합니다.
그래서 $db와 $no변수를 hidden으로 넘겨주게 됩니다.
이걸 어디서 넘겨받냐면 바로 글보기 입니다.
view.php파일의 마지막에 보시면 다음과 같은 부분이 있습니다.

a href=delete.php?db=&no=삭제

<와 >괄호는 생략할게요..
이렇게 delete.php파일로 이동할때.. $db와 $no변수를 넘겨주게 되는겁니다.
정석대로 하자면 delete.php파일과 delete_ok.php파일로 분리하는게 좋은 방법이지만
소스가 짧은 관계로 한개의 파일에 다 담아봤습니다.
delete_ok.php파일을 생성한다면

[form method=post action=delete_ok.php]

이렇게 바껴야 하겠죠..
근데 위의 소스에는 따로 action이 안정해져있습니다.
정석대로는 action=가 생략되어있는거죠.
즉, 자체 로딩을 시키는겁니다.

이때.. 폼에서.. 이렇게 hidden을 하나 숨겨둡니다.
그리고 이 폼이 submit이 되면...  그 아랫부분의
if($go=="ok") 처럼.. 쿼리 작업을 시작하게 하는거죠..

// 비밀번호 체크함
$_check=mysql_num_rows(mysql_query("select * from board_$db where
password='$password'"));
if(!$_check){
echo "[script] window.alert('비밀번호가 일치하지 않습니다.'); history.go(-1); [/script]"; exit;
}

이런식으로 비번이 정확한지 안정확한지를 체크합니다.
체크하는 방법은 여러가지가 있지만.. 프로그램 짜는 사람마다 틀립니다.
저같은 경우는 mysql_num_rows를 많이 사용한답니다.

즉, 검색결과의 갯수를 반환시켜주는 함수죠..
password='$password' 즉 디비속에 있는 비번이 현재 입력한 비번과 동일한
모든걸 가져오게 한다음에.. 결과값이 없다면..
비번이 잘못입력된거겠죠?? 그러면.. 경고창을 띄우고 되돌려 보내야 겠죠..
그리고 한가지 주의하실점은 반드시 exit;이걸
넣어줘야 한다는거 잊지마세요..
exit;가 없음.. 경고창 띄우고는 그다음 쿼리를 실행해버리기 때문에
비번이 틀려도 글을 삭제해버리게 됩니다.

비번을 틀리게 입력했을경우에는 아래처럼 경고창이 보이게 됩니다.



삭제하는 부분은 이렇게 해서 삭제를 시키게 됩니다.
그럼 이제 글을 수정하는 부분을 알아볼까요??
수정하는건 글쓰기 (write.php)와 거의 비슷한 구조를 가지게 됩니다.
우선 글수정부분을 보면



이렇게 원래 글내용 및 제목등을 가져와줘야 합니다.
이것 말고 나머지는 write.php파일과 거의 동일합니다.

소스를 보면



거의 write.php파일과 동일하죠??
다만 첨에

$_list=mysql_fetch_array(mysql_query("select * from board_$db where no='$no'"));

이렇게.. 수정할글에 해당하는 모든 자료를 가져와야 합니다.
그리고는 폼부분에서 value를 이용해서 값을 넣어주면 됩니다.
단 비번란에는 value값을 넣어주면 안됩니다.
비번란은 스스로 입력하도록 한다음에 edit_ok.php에서 비번을 확인해서
비번이 정확할경우에만 수정을 해야하기때문이죠.

중요한건 edit_ok.php에서겠죠..
edit_ok.php 역시 delete.php처럼 비밀번호를 체크해야 합니다.



비번 체크하는 부분은 delete.php파일과 비슷하죠??
비번이 정확하다면 글을 수정해야겠죠??

수정하는건 "제목","이름","내용"만 수정해주면 됩니다.
그리고 write_ok.php에서처럼 입력된 태그는 다 제거하고 입력을 시켜줘야합니다.

이렇게 수정을 하고난 후의 리스트로 돌아가보면
아래처럼 수정이 되어있음을 알수가 있습니다.

글삭제 및 글수정에서 중요한건.. 딱하나입니다.
바로 비밀번호를 확인하는 작업이죠..
이것만 정확하게 해주면.. 나머지는 쿼리문을 이용해서
명령만 해주면 되겠죠..




자!! 이렇게 해서.. 허접하지만.. 기본적이고 아주 간단한 게시판을 만들어봤습니다.
이렇게 만든 게시판의 전체 원리를 이해할수있다면 충분히 더 복잡하고도
기능이 많은 게시판을 만들수있다고 생각합니다.

이해가 잘 안가시는 분들은 자료실에서 소스를 다운받아서..
수정도 해보고.. 안되는 부분은 질문도 하고해서 꼭 자기것으로 만들기 바랍니다.

다음부터는 이제 게시판에 추가되어야 하는 사항들에 대해서 공부하도록 하겠습니다.
이때까지 허접강좌 보시느라 수고가 많았습니다.
<ㅑㅇ~~
제목 글쓴이 날짜
교육용 방명록 #8 [delete.php3파일에서 넘겨받은 비밀번호를 검사하여 글을 삭제합니다.] [18] zero 2000.07.03
MySQL 루트비번 분실시 대처요령 [29] zero 2001.04.18
노프레임/카운터에 관련된 PHP함수 팁 몇가지 [1] 차카게살자 2001.12.28
PHP 인증 페이지를 만들자! - Lesson 1 수정본 #2 ☺[폐]허접-_- 2002.01.24
PHP 인증 페이지를 만들자! - Lesson 2 수정본 #1 [5] ☺[폐]허접-_- 2002.01.24
회원관리 프로그램을 구현하고 싶은신 분들께.. [7] [폐]허접-_- 2002.03.18
PHP 인증 페이지를 만들자! - Lesson 3 수정본 #1 [3] ☺[폐]허접-_- 2002.01.24
M3U생성 프로그램을 통한 MP3실시간 듣기.. [11] ▒1q▒ 2001.09.13
배경 음악을 한번만 실행 시키기 - 쿠키이용 [4] 오기 2001.12.02
주소에서 음악 파일만 빼와 윈앰프로 실행하기 [1] file 오기 2001.12.04
[추천 팁] phpmyadmin 으로 복구 할때. 후니 2001.02.28
공부용 방명록이에욥^^. 주석왕창(페이지분할등.기능있어욥~) [2] 프리^^ 2001.04.16
최근게시물 - 첫글은 내용까지, 다음글부터 목록만... [15] СreдturЭ 2001.04.16
[APM] 한글, gif, jpeg, png 다되는 GD 설치 [4] 앤디(andy) 2001.05.22
GD를 이용해본 영어 발음기호 image출력 [3] 앤디(andy) 2001.05.24
쿠키 설정하고 불러올때 주의할점;; [윈도우 멀티부팅 사용하시는 초보분만] [9] daftya 2001.05.29
대화방을 만들어보쟈~ [20] 해그리드짱!!! 2001.06.03
자기 홈 또는 서버 연지 며칠이 지났는지 알 수 있는 php 소스 [15] 고종길 2001.06.03
홈페이지에 실시간뉴스 보여주기 [19] looster 2001.06.05
지금까지 살아온 날 계산해 주는 스크립트 [6] skyel 2001.07.20