웹마스터 팁
page_full_width" class="col-xs-12" |cond="$__Context->page_full_width">
누구나 만들수있는 게시판 [글삭제, 수정 부분]
2002.08.21 16:47
식사들 하셨습니까??
요며칠전에 "두사부일체"를 봤는데 넘넘 우끼더군요..
특히.. 학교가기 이전에 "대가리"랑 그 부하들이 학원알아보는 장면에서
"대가리" 왈 : "근데 그긴 졸업장도 주냐?"
"밑에넘" 왈 : "뭐 돈주면 주것죠? "
ㅋㅋ 이 대목이 참 우겼어여.. ^^
자자.. 이제 본격적으로 강좌에 들어가야죠..
이번 시간이 기본게시판 만들기 마지막시간입니다.
이 강좌를 끝으로 기본 게시판은 완성이 되며.. 이제 추가적인.. 기능을 구현하도록하겠습니다.
이때까지 기본 강좌에 사용된 소스파일은 전부 압축해서 자료실에 올려두겠습니다.
공부하실분은 자료실에서 다운받아가시면 됩니다.
디비 테이블만 만들면.. 이 소스로도 충분히 게시판이 된답니다..^____^
자.. 오늘 할일은.. 글수정, 글삭제 입니다.
우선 글삭제부터 할게요.. 글삭제가 간단하거든여..^^
걍 지워버리면 되니까요..^__^
근데 아무나 지우게하면 안되겠죠?? 글쓴 사람만 지워야 겠죠??
![](http://mrjh.com/images/capture/lecture/skin/enter_password.gif)
그러기 위해서.. 글작성시 입력한 패스워드를 다시 요구하는 폼이 있어야 합니다.
그리고 패스워드를 입력하면 입력한 패스워드가 정확한지를 확인하는 절차를 거친후
정확하다면 글을 삭제하게 해야합니다.
이 과정을 소스로 보면 다음과 같습니다.
![](http://mrjh.com/images/capture/lecture/source/delete.gif)
앞에서도 여러번 말했지만.. 항상 $db변수는 hidden으로 넘겨줘야 합니다.
그리고 글을 삭제할때 삭제할 글의 번호도 넘겨줘야 합니다.
그래서 $db와 $no변수를 hidden으로 넘겨주게 됩니다.
이걸 어디서 넘겨받냐면 바로 글보기 입니다.
view.php파일의 마지막에 보시면 다음과 같은 부분이 있습니다.
a href=delete.php?db==$db?>&no==$no?>삭제
<와 >괄호는 생략할게요..
이렇게 delete.php파일로 이동할때.. $db와 $no변수를 넘겨주게 되는겁니다.
정석대로 하자면 delete.php파일과 delete_ok.php파일로 분리하는게 좋은 방법이지만
소스가 짧은 관계로 한개의 파일에 다 담아봤습니다.
delete_ok.php파일을 생성한다면
[form method=post action=delete_ok.php]
이렇게 바껴야 하겠죠..
근데 위의 소스에는 따로 action이 안정해져있습니다.
정석대로는 action==$PHP_SELF?>가 생략되어있는거죠.
즉, 자체 로딩을 시키는겁니다.
이때.. 폼에서.. 이렇게 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;가 없음.. 경고창 띄우고는 그다음 쿼리를 실행해버리기 때문에
비번이 틀려도 글을 삭제해버리게 됩니다.
비번을 틀리게 입력했을경우에는 아래처럼 경고창이 보이게 됩니다.
![](http://mrjh.com/images/capture/lecture/skin/wrong_password.gif)
삭제하는 부분은 이렇게 해서 삭제를 시키게 됩니다.
그럼 이제 글을 수정하는 부분을 알아볼까요??
수정하는건 글쓰기 (write.php)와 거의 비슷한 구조를 가지게 됩니다.
우선 글수정부분을 보면
![](http://mrjh.com/images/capture/lecture/skin/edit.gif)
이렇게 원래 글내용 및 제목등을 가져와줘야 합니다.
이것 말고 나머지는 write.php파일과 거의 동일합니다.
소스를 보면
![](http://mrjh.com/images/capture/lecture/source/edit.gif)
거의 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처럼 비밀번호를 체크해야 합니다.
![](http://mrjh.com/images/capture/lecture/source/edit_ok.gif)
비번 체크하는 부분은 delete.php파일과 비슷하죠??
비번이 정확하다면 글을 수정해야겠죠??
수정하는건 "제목","이름","내용"만 수정해주면 됩니다.
그리고 write_ok.php에서처럼 입력된 태그는 다 제거하고 입력을 시켜줘야합니다.
이렇게 수정을 하고난 후의 리스트로 돌아가보면
아래처럼 수정이 되어있음을 알수가 있습니다.
글삭제 및 글수정에서 중요한건.. 딱하나입니다.
바로 비밀번호를 확인하는 작업이죠..
이것만 정확하게 해주면.. 나머지는 쿼리문을 이용해서
명령만 해주면 되겠죠..
![](http://mrjh.com/images/capture/lecture/skin/after_edit.gif)
자!! 이렇게 해서.. 허접하지만.. 기본적이고 아주 간단한 게시판을 만들어봤습니다.
이렇게 만든 게시판의 전체 원리를 이해할수있다면 충분히 더 복잡하고도
기능이 많은 게시판을 만들수있다고 생각합니다.
이해가 잘 안가시는 분들은 자료실에서 소스를 다운받아서..
수정도 해보고.. 안되는 부분은 질문도 하고해서 꼭 자기것으로 만들기 바랍니다.
다음부터는 이제 게시판에 추가되어야 하는 사항들에 대해서 공부하도록 하겠습니다.
이때까지 허접강좌 보시느라 수고가 많았습니다.
<ㅑㅇ~~
요며칠전에 "두사부일체"를 봤는데 넘넘 우끼더군요..
특히.. 학교가기 이전에 "대가리"랑 그 부하들이 학원알아보는 장면에서
"대가리" 왈 : "근데 그긴 졸업장도 주냐?"
"밑에넘" 왈 : "뭐 돈주면 주것죠? "
ㅋㅋ 이 대목이 참 우겼어여.. ^^
자자.. 이제 본격적으로 강좌에 들어가야죠..
이번 시간이 기본게시판 만들기 마지막시간입니다.
이 강좌를 끝으로 기본 게시판은 완성이 되며.. 이제 추가적인.. 기능을 구현하도록하겠습니다.
이때까지 기본 강좌에 사용된 소스파일은 전부 압축해서 자료실에 올려두겠습니다.
공부하실분은 자료실에서 다운받아가시면 됩니다.
디비 테이블만 만들면.. 이 소스로도 충분히 게시판이 된답니다..^____^
자.. 오늘 할일은.. 글수정, 글삭제 입니다.
우선 글삭제부터 할게요.. 글삭제가 간단하거든여..^^
걍 지워버리면 되니까요..^__^
근데 아무나 지우게하면 안되겠죠?? 글쓴 사람만 지워야 겠죠??
![](http://mrjh.com/images/capture/lecture/skin/enter_password.gif)
그러기 위해서.. 글작성시 입력한 패스워드를 다시 요구하는 폼이 있어야 합니다.
그리고 패스워드를 입력하면 입력한 패스워드가 정확한지를 확인하는 절차를 거친후
정확하다면 글을 삭제하게 해야합니다.
이 과정을 소스로 보면 다음과 같습니다.
![](http://mrjh.com/images/capture/lecture/source/delete.gif)
앞에서도 여러번 말했지만.. 항상 $db변수는 hidden으로 넘겨줘야 합니다.
그리고 글을 삭제할때 삭제할 글의 번호도 넘겨줘야 합니다.
그래서 $db와 $no변수를 hidden으로 넘겨주게 됩니다.
이걸 어디서 넘겨받냐면 바로 글보기 입니다.
view.php파일의 마지막에 보시면 다음과 같은 부분이 있습니다.
a href=delete.php?db==$db?>&no==$no?>삭제
<와 >괄호는 생략할게요..
이렇게 delete.php파일로 이동할때.. $db와 $no변수를 넘겨주게 되는겁니다.
정석대로 하자면 delete.php파일과 delete_ok.php파일로 분리하는게 좋은 방법이지만
소스가 짧은 관계로 한개의 파일에 다 담아봤습니다.
delete_ok.php파일을 생성한다면
[form method=post action=delete_ok.php]
이렇게 바껴야 하겠죠..
근데 위의 소스에는 따로 action이 안정해져있습니다.
정석대로는 action==$PHP_SELF?>가 생략되어있는거죠.
즉, 자체 로딩을 시키는겁니다.
이때.. 폼에서.. 이렇게 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;가 없음.. 경고창 띄우고는 그다음 쿼리를 실행해버리기 때문에
비번이 틀려도 글을 삭제해버리게 됩니다.
비번을 틀리게 입력했을경우에는 아래처럼 경고창이 보이게 됩니다.
![](http://mrjh.com/images/capture/lecture/skin/wrong_password.gif)
삭제하는 부분은 이렇게 해서 삭제를 시키게 됩니다.
그럼 이제 글을 수정하는 부분을 알아볼까요??
수정하는건 글쓰기 (write.php)와 거의 비슷한 구조를 가지게 됩니다.
우선 글수정부분을 보면
![](http://mrjh.com/images/capture/lecture/skin/edit.gif)
이렇게 원래 글내용 및 제목등을 가져와줘야 합니다.
이것 말고 나머지는 write.php파일과 거의 동일합니다.
소스를 보면
![](http://mrjh.com/images/capture/lecture/source/edit.gif)
거의 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처럼 비밀번호를 체크해야 합니다.
![](http://mrjh.com/images/capture/lecture/source/edit_ok.gif)
비번 체크하는 부분은 delete.php파일과 비슷하죠??
비번이 정확하다면 글을 수정해야겠죠??
수정하는건 "제목","이름","내용"만 수정해주면 됩니다.
그리고 write_ok.php에서처럼 입력된 태그는 다 제거하고 입력을 시켜줘야합니다.
이렇게 수정을 하고난 후의 리스트로 돌아가보면
아래처럼 수정이 되어있음을 알수가 있습니다.
글삭제 및 글수정에서 중요한건.. 딱하나입니다.
바로 비밀번호를 확인하는 작업이죠..
이것만 정확하게 해주면.. 나머지는 쿼리문을 이용해서
명령만 해주면 되겠죠..
![](http://mrjh.com/images/capture/lecture/skin/after_edit.gif)
자!! 이렇게 해서.. 허접하지만.. 기본적이고 아주 간단한 게시판을 만들어봤습니다.
이렇게 만든 게시판의 전체 원리를 이해할수있다면 충분히 더 복잡하고도
기능이 많은 게시판을 만들수있다고 생각합니다.
이해가 잘 안가시는 분들은 자료실에서 소스를 다운받아서..
수정도 해보고.. 안되는 부분은 질문도 하고해서 꼭 자기것으로 만들기 바랍니다.
다음부터는 이제 게시판에 추가되어야 하는 사항들에 대해서 공부하도록 하겠습니다.
이때까지 허접강좌 보시느라 수고가 많았습니다.
<ㅑㅇ~~
댓글 4
-
김영지
2002.08.31 14:45
-
Mr. JH
2002.08.21 17:14
강좌에 사용된 소스로만 만들어진 게시판은
http://mrjh.com/for_lecture/list.php?db=test이곳에 가시면 있습니다.
테스트해보실수 있습니다.
단.. 강좌를 위해 만든거기때문에 보안같은거 없습니다.
장난은 삼가해주세요.. -
IT
2002.08.21 17:42
강좌 감사함다~~~~^^ -
엔카일
2002.08.21 23:50
파일시스템 게시판 강좌도 해주시면..좋을텐데...
제목 | 글쓴이 | 날짜 |
---|---|---|
초보의 php를 활용한 OneFrame(NoFrame) 홈페이지 만들기 - 1 [17] | 아이쿠 | 2002.08.30 |
array_multisort를 이용한 간단한 순위체크 [4] | Doogi | 2002.08.28 |
변수를 사용하여 echo로 변수값 출력하기. [7] | ZipShin | 2002.08.28 |
sleep() 제대루 쓰기... 요것두 [별루 알아도 도움 안되는 팁] [5] | sMokaHallo | 2002.08.24 |
[허접] implode() 함수로 배열을 변수로! | Myzzix | 2002.08.23 |
[허접] rand() 함수를 이용한 뒤죽박죽 날짜 출력 [5] | Myzzix | 2002.08.23 |
파일하나로 만드는 한줄 메모장(테마기능 포함) [8] | Mr. JH | 2002.08.22 |
PHP의 제어구조 [2] | Mr. JH | 2002.08.22 |
PHP 시간관련 함수 [3] | Mr. JH | 2002.08.22 |
PHP에서 사용하는 간단하지만 중요한 MySQL함수들 [3] | Mr. JH | 2002.08.22 |
꼭 알아야 하는 4가지 쿼리문 | Mr. JH | 2002.08.22 |
테이블 생성시 데이터베이스의 타입설정 [2] | Mr. JH | 2002.08.22 |
누구나 만들수있는 게시판 [글삭제, 수정 부분]
[4]
![]() | Mr. JH | 2002.08.21 |
누구나 만들수있는 게시판 [글보기 view.php 부분] [1] | Mr. JH | 2002.08.21 |
누구나 만들수있는 게시판 [글목록 list.php 부분] [6] | Mr. JH | 2002.08.21 |
누구나 만들수있는 게시판 [schema, write, write_ok] [10] | Mr. JH | 2002.08.21 |
제로 카운터 숫자 조정하기 [8] | 이주경 | 2002.08.21 |
Print 이건또 뭐지? 사이트 찾다보니 있던데..^^ [13] | ZipShin | 2002.08.16 |
기초 통계 프로그램 for 귀차니스트;; [3] | TheMics | 2002.08.10 |
쓸모있는 PHP Tip (다 알구 있을런지 모르겠네여..^^) [1] | 이삐아이(체리) | 2002.08.09 |
주인장이 로긴해서..뭐 어쩌구..