채택완료

관리자모드에서 비회원 게시글 삭제 시 '비밀번호가 틀리므로 삭제할 수 없습니다.'

2016-09-20 (화) 10:24:59 5,774

관리자모드에서 비회원모드로 작성했던 게시글을 삭제하려 하면 '비밀번호가 틀리므로 삭제할 수 없습니다.'라고 뜨는데, 왜 그러는 걸까요 ?

익스플로러에서 한글도메인 문제때문에 삭제할 때 웹페이지를 표시할 수 없다는 바람에

삭제, 수정 시 경로를 절대경로로 모두 변경했는데 관련이 있을까요 ? (절대경로 변경 전에는 크롬에서 비밀번호 입력창으로 넘어갔습니다.)

view.php 내용 일부입니다. (절대경로 변경 전)

Copy
// 수정, 삭제 링크$update_href = $delete_href = '';// 로그인중이고 자신의 글이라면 또는 관리자라면 비밀번호를 묻지 않고 바로 수정, 삭제 가능if (($member['mb_id'] && ($member['mb_id'] == $write['mb_id'])) || $is_admin) {    $update_href = './write.php?w=u&bo_table='.$bo_table.'&wr_id='.$wr_id.'&page='.$page.$qstr;    $delete_href = './delete.php?bo_table='.$bo_table.'&wr_id='.$wr_id.'&page='.$page.urldecode($qstr);    if ($is_admin)    {        set_session("ss_delete_token", $token = uniqid(time()));        $delete_href ='./delete.php?bo_table='.$bo_table.'&wr_id='.$wr_id.'&token='.$token.'&page='.$page.urldecode($qstr);    }}else if (!$write['mb_id']) { // 회원이 쓴 글이 아니라면    $update_href = './password.php?w=u&bo_table='.$bo_table.'&wr_id='.$wr_id.'&page='.$page.$qstr;    $delete_href = './password.php?w=d&bo_table='.$bo_table.'&wr_id='.$wr_id.'&page='.$page.$qstr;}// 최고, 그룹관리자라면 글 복사, 이동 가능$copy_href = $move_href = '';if ($write['wr_reply'] == '' && ($is_admin == 'super' || $is_admin == 'group')) {    $copy_href = './move.php?sw=copy&bo_table='.$bo_table.'&wr_id='.$wr_id.'&page='.$page.$qstr;    $move_href = './move.php?sw=move&bo_table='.$bo_table.'&wr_id='.$wr_id.'&page='.$page.$qstr;}

delete.php입니다.

Copy
if ($is_admin == 'super') // 최고관리자 통과    ;else if ($is_admin == 'group') { // 그룹관리자    $mb = get_member($write['mb_id']);    if ($member['mb_id'] != $group['gr_admin']) // 자신이 관리하는 그룹인가?        alert('자신이 관리하는 그룹의 게시판이 아니므로 삭제할 수 없습니다.');    else if ($member['mb_level'] < $mb['mb_level']) // 자신의 레벨이 크거나 같다면 통과        alert('자신의 권한보다 높은 권한의 회원이 작성한 글은 삭제할 수 없습니다.');} else if ($is_admin == 'board') { // 게시판관리자이면    $mb = get_member($write['mb_id']);    if ($member['mb_id'] != $board['bo_admin']) // 자신이 관리하는 게시판인가?        alert('자신이 관리하는 게시판이 아니므로 삭제할 수 없습니다.');    else if ($member['mb_level'] < $mb['mb_level']) // 자신의 레벨이 크거나 같다면 통과        alert('자신의 권한보다 높은 권한의 회원이 작성한 글은 삭제할 수 없습니다.');} else if ($member['mb_id']) {    if ($member['mb_id'] != $write['mb_id'])        alert('자신의 글이 아니므로 삭제할 수 없습니다.');} else {    if ($write['mb_id'])        alert('로그인 후 삭제하세요.', './login.php?url='.urlencode('./board.php?bo_table='.$bo_table.'&amp;wr_id='.$wr_id));    else if (sql_password($wr_password) != $write['wr_password'])        alert('비밀번호가 틀리므로 삭제할 수 없습니다.');}

방법 아시는 분 도와주세요 ㅠ0ㅠ

답변 1개 / 댓글 1개

채택된 답변
+20 포인트
2016-09-20 (화) 11:26:27

변경하신 페이지에서 $is_admin, $member['mb_id'] 확인 해 보셔야 할거 같으네요.

나온 메세지 보면 $is_admin 이 super도 board도 아니고 $member['mb_id']도 없어서

나온건데요.

익스에서 한글 도메인 문제라고 하신것도 궁금하네요... 어떤 문제인지요?

그리고 변경전 소스만 올라와 있는데 변경전 소스도 있어야 비교를 할 수 있지 않을까요?

일단은 url 절대니 상대니가 문제가 아닌거 같습니다.

delete.php 에서 if문 들어가기 전에 echo $is_admin; exit; 로 확인 해 보시는게 좋을거 같습니다.

값이 없다면 어딘가에서 누락되는 부분을 찾아야 할거 같습니다.  일단 확인 먼저.... 

답변에 대한 댓글 1개

2016-09-20 (화) 13:22:28
으악 장문으로 달았는데 다 날아갔네요..
급한 문제라 결국 덮어쓰기 했습니다. 아직 배워가는 단계라 되도록 재설치없이 도움 구하고, 고쳐보고 하려했는데 마음만큼 잘 안 되네요.
궁금하다고 하신 익스 한글도메인 문제는 본문에서 자세히 얘기하지 않았는데,
익스플로러에서 한글도메인 사이트 게시판의 게시글을 삭제하면 "웹페이지를 표시할 수 없습니다"로 넘어가더라구요.
그래서 여기서 답변구해서 view.php의 삭제 링크와 수정 링크 등등의
'./write.php?w=u&bo_table=' 부분을
'http://절대경로.cafe24.com/bbs/write.php?w=u&bo_table='등으로 변경했었습니다.
질문게시판에서 자주 봽는데 답변 진심으로 감사드립니다. 좋은 하루 되세요~

답변을 작성하려면 로그인이 필요합니다.