토큰 에러에 의한 게시물 삭제 불가?

토큰 에러에 의한 게시물 삭제 불가?

QA

토큰 에러에 의한 게시물 삭제 불가?

답변 2

본문

예전 A서버에 있던 교육신청 게시판($bo_table=edu)을 B서버로 이전하였습니다.

이전 후 교육신청 게시판의 신청내용들을 일반페이지(hid=edu_write)에서 목록이 나오도록 코딩을 했는데요..

 

이때 hid=edu_wirte에서 리스트업된 신청 목록 중 삭제를 할 경우 '토큰 에러에 의한 게시물 삭제 불가'라는 메세지가 뜨면서 삭제처리가 되지 않고 있는데요...

 

이런 경우 해당 게시물의 토큰 값이 현재 세션의 토큰값과 게시물 작성(교육신청) 시 할당된 토큰 값이 달라서 인걸까요?

 

이전 서버에서 해당 게시판(edu_write) 게시물들의 토큰 값들을 가져와야 되는 것인지요?

세션값과 토큰 값을 비교해서 같으면 삭제처리가 되는 것 같은데... 뭐가 문제일까요?

 


<?php 
$sql_common = " from g5_write_edu_write ";
$sql_search = " where mb_id = '$member[mb_id]'";
$sql_order = " order by wr_id desc "; 
 
$sql = " select * {$sql_common} {$sql_search} {$sql_order} limit {$from_record}, {$rows} ";
$result = sql_query($sql);
for ($i=0; $row=sql_fetch_array($result); $i++) {
 
$delete_href = '';
    if (($member['mb_id'] && ($member['mb_id'] == $row['mb_id'])) || $is_admin) {
        set_session('ss_delete_token', $token = uniqid(time()));
        $delete_href ='/bbs/delete.php?bo_table=edu_write&wr_id='.$row['wr_id'].'&token='.$token;
    } else if (!$row['mb_id']) { // 회원이 쓴 글이 아니라면
        $delete_href = '/bbs/password.php?w=d&bo_table=edu_write&wr_id='.$row['wr_id'].'&page='.$page.$qstr;
    }
?>
 
교육신청 내용
 
<a href="<?php echo $delete_href ?>" class="btn btn-black btn-xs" style="width:145px;"  onclick="del(this.href); return false;"><i class="fa fa-trash-o"></i> <b>교육신청취소</b></a>
 
<?php } ?>

이 질문에 댓글 쓰기 :

답변 2

게시물 토큰 값을 따로 저장하고 그런 건 없습니다
set_session(~~)까지는 잘 했는데 넣는 위치가 틀렸습니다
페이지의 마지막 게시물을 삭제 하면 아무 이상없이 잘 될 겁니다


set_session(~~) <--이것을 for문 밖으로 옮기세요

이유는 1번 목록에서 토큰을 만들어서 삭제 링크를 만든 후

2번 게시물에서 새로운 토큰을 만들어 저장 해버리니 1번 게시물 삭제 링크에 들어간 토큰과

값이 달라져 버리게 되고 삭제 화일에 가서는 저장된 토큰과 삭제 링크에서 넘어온 토큰 값이 다르니

에러 문구나 나오게 됩니다

이것을 for loop만큼 실행하니 게시물 마다 삭제 링크는 엉뚱한 토큰 값을 가지고 있는 것이고

맨 마지막 게시물만이 저장된 토큰과 삭제 링크의 토큰값이 동일 하게 되겠죠

토큰 에러는 대부분 스크립트 오류 입니다.

개발자도구( F12)로 확인해보세요.

 

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