글수정 한사람만 접속할려면 어떻게 해야 하나요?
본문
특정 게시판을 모든 회원에게 관리자 권한을 줘서 누구나 남의 글을 수정할수 있도록 해서 사용 중입니다.
문제는 여러명의 회원이 동시에 글 수정을 했을때 문제가 되고있습니다.
혹시 글수정 페이지는 한사람만 접속하게 하고 싶은데 방법이 있을까요?
답변 5
write.php 상단에
if ($member['mb_id'] != '원하는 사람 아이디' && $bo_table == '특정게시판테이블명' && $w == "u") {
alert('권한이 없어 수정이 불가능합니다.');
}
추가하세요!!!
!-->
동시 수정을 막는 방법은 없습니다
일례를 들어보면
A가 수정을 클릭해서 수정화면에 열린 상태로, 몇시간동안 딴짓을 했습니다
이것을 감지하는 방법이 없습니다
열렸던 상태로 웹브라우저 창을 닫는다면, 그 페이지는 영원히 열린 상태가 됩니다....
글수정 페이지 접속할때..
해당 글의 여분필드에 수정하는 회원 아이디를 저장하고..
다른 회원이 수정페이지 접속할때 차단하는 방법이 있습니다.
수정 후 저장을 누를때, 다시 아이디를 삭제하면 되구요.
write.skin.php 에 회원 접근시 여분필드 wr_1 에 수정중인지 아닌지를 채크하면됩니다.
if($w == 'u' && $write['wr_1'] == ''){ // 수정 상태이고 누가 수정중이지 않을때
// 해당 게시물의 wr_1 필드에 1을 업데이트 하여 수정중임을 표시
sql_query("update `g5_write_{$_GET['bo_table']}` set wr_1 = '{$member['mb_id']}' where wr_is_comment = '0' and wr_id = '{$_GET['wr_id']}'");
} else if($write['wr_1']) { // wr_1 값이 있다면 수정중임.
alert($write['wr_1'].'님이 수정중입니다.');
}
이런식으로도 변경 하고.
저장할때 write.update.php 에서 위 쿼리중 wr_1 을 공란으로 한번 더 업데이트 해줍니다.
무척 어려운 문제입니다.
글수정 페이지는 한사람만 접속하게...
==
즉 수정하는 시간 동안에 다른 사람은 수정을 못 하게 하는 것인데
수정하는 시간을 어떻게 정할지부터 생각해 보셔야 합니다.
글쓰는 시간이 하루 걸리면
다른 사람들을 그 글을 수정하고자하면 하루를 기다려야 합니다.
좀 무책임한 방법으로는
글쓰는 페이지를 열 때, 이 글의 수정 시각을 저장하고
글 다 쓰고 저장할 때, 기존 수정 시각과 저장된 시각을 비교해서 다르면
메시지를 출력하고 글은 저장 안 하는 방식이 있습니다.