글수정 한사람만 접속할려면 어떻게 해야 하나요?

글수정 한사람만 접속할려면 어떻게 해야 하나요?

QA

글수정 한사람만 접속할려면 어떻게 해야 하나요?

답변 5

본문

특정 게시판을 모든 회원에게 관리자 권한을 줘서 누구나 남의 글을 수정할수 있도록 해서 사용 중입니다.

 

문제는 여러명의 회원이 동시에 글 수정을 했을때 문제가 되고있습니다. 

 

혹시 글수정 페이지는 한사람만 접속하게 하고 싶은데 방법이 있을까요?

이 질문에 댓글 쓰기 :

답변 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 을 공란으로 한번 더 업데이트 해줍니다.

무척 어려운 문제입니다.

 

글수정 페이지는 한사람만 접속하게...

==

즉 수정하는 시간 동안에 다른 사람은 수정을 못 하게 하는 것인데

수정하는 시간을 어떻게 정할지부터 생각해 보셔야 합니다.

글쓰는 시간이 하루 걸리면

다른 사람들을 그 글을 수정하고자하면 하루를 기다려야 합니다.

 

좀 무책임한 방법으로는

글쓰는 페이지를 열 때, 이 글의 수정 시각을 저장하고

글 다 쓰고 저장할 때, 기존 수정 시각과 저장된 시각을 비교해서 다르면 

메시지를 출력하고 글은 저장 안 하는 방식이 있습니다.

답변을 작성하시기 전에 로그인 해주세요.
QA 내용 검색
질문등록
전체 98
© SIRSOFT
현재 페이지 제일 처음으로