웹마스터 팁

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

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

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

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

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

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

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



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



앞에서도 여러번 말했지만.. 항상 $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에서처럼 입력된 태그는 다 제거하고 입력을 시켜줘야합니다.

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

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




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

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

다음부터는 이제 게시판에 추가되어야 하는 사항들에 대해서 공부하도록 하겠습니다.
이때까지 허접강좌 보시느라 수고가 많았습니다.
<ㅑㅇ~~
제목 글쓴이 날짜
[동주아빠] PHP 게시판(끝.29강) - 삭제(delete_ok.php) [18] 손병목 2003.01.11
[동주아빠] PHP 게시판(28강) - 삭제(delete.php) 손병목 2003.01.11
누구나 만들수있는 게시판 [글삭제, 수정 부분] [4] file Mr. JH 2002.08.21
교육용 방명록 #8 [delete.php3파일에서 넘겨받은 비밀번호를 검사하여 글을 삭제합니다.] [18] zero 2000.07.03
교육용 방명록 #7 [삭제 버튼을 눌렀을 때 비밀번호를 입력받는 부분입니다.] [5] zero 2000.07.03
동적 테이블 (행추가, 특정행 삭제) Juny. 2008.02.20
메뉴 추가 삭제 수정시 쓰면 좋을것 같네요 - 출처: http://www.happyscript.com/ [1] 예뜨락 2004.09.17
[레드의 태그중급]폼 태그..(이상해져서 삭제하구 다시 적습니다) [3] 레드 2003.01.15
내가 작성 한 글에 대한 일괄 삭제/이동/복사 권한 주기 [2] file 개돌 2009.05.15
IE의 특정 도메인 인터넷 임시 파일 Cache만 삭제하기 [3] NetEagle 2008.10.22
플래너 "한줄공지" 가 삭제되지 않는 경우 의 임시대응법 [2] file Gekkou 2009.10.13
수정,삭제 버튼을 "이 게시물을.."에 넣기 [1] hangoon 2008.04.16
FTP로 지워지지 않는 파일 삭제방법. [9] pakjce 2008.07.05
[초보팁] 우리말 수정하기(예제: 가입창 이름란 삭제) [3] 블루파티 2008.08.19
텔넷으로 순간 압축풀기/폴더 삭제/폴더파일 압축하기... [5] Crazyhouse.cn 2008.05.19
쪽지 답글 보내기 원본 내용 삭제 절망린 2009.06.24
까페 아이디 삭제후 동일 아이디로 생성하는 방법 키스메리 2009.05.15