채택완료
관리자모드에서 비회원 게시글 삭제 시 '비밀번호가 틀리므로 삭제할 수 없습니다.'
관리자모드에서 비회원모드로 작성했던 게시글을 삭제하려 하면 '비밀번호가 틀리므로 삭제할 수 없습니다.'라고 뜨는데, 왜 그러는 걸까요 ?
익스플로러에서 한글도메인 문제때문에 삭제할 때 웹페이지를 표시할 수 없다는 바람에
삭제, 수정 시 경로를 절대경로로 모두 변경했는데 관련이 있을까요 ? (절대경로 변경 전에는 크롬에서 비밀번호 입력창으로 넘어갔습니다.)
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.'&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='등으로 변경했었습니다.
질문게시판에서 자주 봽는데 답변 진심으로 감사드립니다. 좋은 하루 되세요~