관리자모드에서 비회원 게시글 삭제 시 '비밀번호가 틀리므로 삭제할 수 없습니다.' 채택완료
관리자모드에서 비회원모드로 작성했던 게시글을 삭제하려 하면 '비밀번호가 틀리므로 삭제할 수 없습니다.'라고 뜨는데, 왜 그러는 걸까요 ?
익스플로러에서 한글도메인 문제때문에 삭제할 때 웹페이지를 표시할 수 없다는 바람에
삭제, 수정 시 경로를 절대경로로 모두 변경했는데 관련이 있을까요 ? (절대경로 변경 전에는 크롬에서 비밀번호 입력창으로 넘어갔습니다.)
view.php 내용 일부입니다. (절대경로 변경 전)
</p><p style="line-height: 1.5;">// 수정, 삭제 링크
$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;
}</p><p style="line-height: 1.5;">// 최고, 그룹관리자라면 글 복사, 이동 가능
$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;
}</p><p style="line-height: 1.5;">
delete.php입니다.
</p><p style="line-height: 1.5;">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('비밀번호가 틀리므로 삭제할 수 없습니다.');
}</p><p style="line-height: 1.5;">
방법 아시는 분 도와주세요 ㅠ0ㅠ
답변 1개
변경하신 페이지에서 $is_admin, $member['mb_id'] 확인 해 보셔야 할거 같으네요.
나온 메세지 보면 $is_admin 이 super도 board도 아니고 $member['mb_id']도 없어서
나온건데요.
익스에서 한글 도메인 문제라고 하신것도 궁금하네요... 어떤 문제인지요?
그리고 변경전 소스만 올라와 있는데 변경전 소스도 있어야 비교를 할 수 있지 않을까요?
일단은 url 절대니 상대니가 문제가 아닌거 같습니다.
delete.php 에서 if문 들어가기 전에 echo $is_admin; exit; 로 확인 해 보시는게 좋을거 같습니다.
값이 없다면 어딘가에서 누락되는 부분을 찾아야 할거 같습니다. 일단 확인 먼저....
답변에 대한 댓글 1개
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인
급한 문제라 결국 덮어쓰기 했습니다. 아직 배워가는 단계라 되도록 재설치없이 도움 구하고, 고쳐보고 하려했는데 마음만큼 잘 안 되네요.
궁금하다고 하신 익스 한글도메인 문제는 본문에서 자세히 얘기하지 않았는데,
익스플로러에서 한글도메인 사이트 게시판의 게시글을 삭제하면 "웹페이지를 표시할 수 없습니다"로 넘어가더라구요.
그래서 여기서 답변구해서 view.php의 삭제 링크와 수정 링크 등등의
'./write.php?w=u&bo_table=' 부분을
'http://절대경로.cafe24.com/bbs/write.php?w=u&bo_table='등으로 변경했었습니다.
질문게시판에서 자주 봽는데 답변 진심으로 감사드립니다. 좋은 하루 되세요~