관리자모드에서 비회원 게시글 삭제 시 '비밀번호가 틀리므로 삭제할 수 없습니다.'
본문
관리자모드에서 비회원모드로 작성했던 게시글을 삭제하려 하면 '비밀번호가 틀리므로 삭제할 수 없습니다.'라고 뜨는데, 왜 그러는 걸까요 ?
익스플로러에서 한글도메인 문제때문에 삭제할 때 웹페이지를 표시할 수 없다는 바람에
삭제, 수정 시 경로를 절대경로로 모두 변경했는데 관련이 있을까요 ? (절대경로 변경 전에는 크롬에서 비밀번호 입력창으로 넘어갔습니다.)
view.php 내용 일부입니다. (절대경로 변경 전)
// 수정, 삭제 링크
$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입니다.
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.'&wr_id='.$wr_id));
else if (sql_password($wr_password) != $write['wr_password'])
alert('비밀번호가 틀리므로 삭제할 수 없습니다.');
}
방법 아시는 분 도와주세요 ㅠ0ㅠ
!-->!-->답변 1
변경하신 페이지에서 $is_admin, $member['mb_id'] 확인 해 보셔야 할거 같으네요.
나온 메세지 보면 $is_admin 이 super도 board도 아니고 $member['mb_id']도 없어서
나온건데요.
익스에서 한글 도메인 문제라고 하신것도 궁금하네요... 어떤 문제인지요?
그리고 변경전 소스만 올라와 있는데 변경전 소스도 있어야 비교를 할 수 있지 않을까요?
일단은 url 절대니 상대니가 문제가 아닌거 같습니다.
delete.php 에서 if문 들어가기 전에 echo $is_admin; exit; 로 확인 해 보시는게 좋을거 같습니다.
값이 없다면 어딘가에서 누락되는 부분을 찾아야 할거 같습니다. 일단 확인 먼저....
답변을 작성하시기 전에 로그인 해주세요.