토큰에러 문의

토큰에러 문의

QA

토큰에러 문의

본문

증상 : 관리자 페이지에서 게시글 작성 시 오류 뜸

 

기존에 구버전 5.1.12 에서 최신버전으로 패치 했을 때 문제가 발생합니다.

 

기존에 사용하던 홈페이지에 그대로 복사 붙여넣기 하면 아무 문제가 없는데,

 

클린 설치를 위해 새로 설치하고, 게시판을 새로 생성 후 글쓰기를 하면 문제가 발생하네요...

 

크롬으로 디버깅 해본 결과,

 

서버 내 common.js 파일이 분명히 같은건데도, 크롬에서 보이는 소스의 내용이 다른점이 확인 되었습니다.

 

토큰이 넘어가는 부분이 기존에 이미 게시판이 만들어져잇는 상태에서는 삭제가 되어있고,

 

신규로 만들면 문제가 발생하는데, 해결 방법이 없을까요?

 

정상작동(기존) common.js 일부분



/**
 * 텍스트 리사이즈
**/
function font_resize(id, rmv_class, add_class)
{
    var $el = $("#"+id);
    $el.removeClass(rmv_class).addClass(add_class);
    set_cookie("ck_font_resize_rmv_class", rmv_class, 1, g5_cookie_domain);
    set_cookie("ck_font_resize_add_class", add_class, 1, g5_cookie_domain);
}
$(function(){
    $(".win_point").click(function() {
        win_point(this.href);
        return false;
    });
    $(".win_memo").click(function() {
        win_memo(this.href);
        return false;
    });
    $(".win_email").click(function() {
        win_email(this.href);
        return false;
    });
    $(".win_scrap").click(function() {
        win_scrap(this.href);
        return false;
    });
    $(".win_profile").click(function() {
        win_profile(this.href);
        return false;
    });
    $(".win_homepage").click(function() {
        win_homepage(this.href);
        return false;
    });
    $(".win_password_lost").click(function() {
        win_password_lost(this.href);
        return false;
    });
    /*
    $(".win_poll").click(function() {
        win_poll(this.href);
        return false;
    });
    */
    // 사이드뷰
    var sv_hide = false;
    $(".sv_member, .sv_guest").click(function() {
        $(".sv").removeClass("sv_on");
        $(this).closest(".sv_wrap").find(".sv").addClass("sv_on");
    });
    $(".sv, .sv_wrap").hover(
        function() {
            sv_hide = false;
        },
        function() {
            sv_hide = true;
        }
    );
    $(".sv_member, .sv_guest").focusin(function() {
        sv_hide = false;
        $(".sv").removeClass("sv_on");
        $(this).closest(".sv_wrap").find(".sv").addClass("sv_on");
    });
    $(".sv a").focusin(function() {
        sv_hide = false;
    });
    $(".sv a").focusout(function() {
        sv_hide = true;
    });
    // 셀렉트 ul
    var sel_hide = false;
    $('.sel_btn').click(function() {
        $('.sel_ul').removeClass('sel_on');
        $(this).siblings('.sel_ul').addClass('sel_on');
    });
    $(".sel_wrap").hover(
        function() {
            sel_hide = false;
        },
        function() {
            sel_hide = true;
        }
    );
    $('.sel_a').focusin(function() {
        sel_hide = false;
    });
    $('.sel_a').focusout(function() {
        sel_hide = true;
    });
    $(document).click(function() {
        if(sv_hide) { // 사이드뷰 해제
            $(".sv").removeClass("sv_on");
        }
        if (sel_hide) { // 셀렉트 ul 해제
            $('.sel_ul').removeClass('sel_on');
        }
    });
    $(document).focusin(function() {
        if(sv_hide) { // 사이드뷰 해제
            $(".sv").removeClass("sv_on");
        }
        if (sel_hide) { // 셀렉트 ul 해제
            $('.sel_ul').removeClass('sel_on');
        }
    });
    $(document).on( "keyup change", "textarea#wr_content[maxlength]", function(){
        var str = $(this).val();
        var mx = parseInt($(this).attr("maxlength"));
        if (str.length > mx) {
            $(this).val(str.substr(0, mx));
            return false;
        }
    });
});

 

비정상 작동 common.js 다른부분


/**
 * 텍스트 리사이즈
**/
function font_resize(id, rmv_class, add_class, othis)
{
    var $el = $("#"+id);
    $el.removeClass(rmv_class).addClass(add_class);
    set_cookie("ck_font_resize_rmv_class", rmv_class, 1, g5_cookie_domain);
    set_cookie("ck_font_resize_add_class", add_class, 1, g5_cookie_domain);
    if(typeof othis !== "undefined"){
        $(othis).addClass('select').siblings().removeClass('select');
    }
}
/**
 * 댓글 수정 토큰
**/
function set_comment_token(f)
{
    if(typeof f.token === "undefined")
        $(f).prepend('<input type="hidden" name="token" value="">');
    $.ajax({
        url: g5_bbs_url+"/ajax.comment_token.php",
        type: "GET",
        dataType: "json",
        async: false,
        cache: false,
        success: function(data, textStatus) {
            f.token.value = data.token;
        }
    });
}
$(function(){
    $(".win_point").click(function() {
        win_point(this.href);
        return false;
    });
    $(".win_memo").click(function() {
        win_memo(this.href);
        return false;
    });
    $(".win_email").click(function() {
        win_email(this.href);
        return false;
    });
    $(".win_scrap").click(function() {
        win_scrap(this.href);
        return false;
    });
    $(".win_profile").click(function() {
        win_profile(this.href);
        return false;
    });
    $(".win_homepage").click(function() {
        win_homepage(this.href);
        return false;
    });
    $(".win_password_lost").click(function() {
        win_password_lost(this.href);
        return false;
    });
    /*
    $(".win_poll").click(function() {
        win_poll(this.href);
        return false;
    });
    */
    // 사이드뷰
    var sv_hide = false;
    $(".sv_member, .sv_guest").click(function() {
        $(".sv").removeClass("sv_on");
        $(this).closest(".sv_wrap").find(".sv").addClass("sv_on");
    });
    $(".sv, .sv_wrap").hover(
        function() {
            sv_hide = false;
        },
        function() {
            sv_hide = true;
        }
    );
    $(".sv_member, .sv_guest").focusin(function() {
        sv_hide = false;
        $(".sv").removeClass("sv_on");
        $(this).closest(".sv_wrap").find(".sv").addClass("sv_on");
    });
    $(".sv a").focusin(function() {
        sv_hide = false;
    });
    $(".sv a").focusout(function() {
        sv_hide = true;
    });
    // 셀렉트 ul
    var sel_hide = false;
    $('.sel_btn').click(function() {
        $('.sel_ul').removeClass('sel_on');
        $(this).siblings('.sel_ul').addClass('sel_on');
    });
    $(".sel_wrap").hover(
        function() {
            sel_hide = false;
        },
        function() {
            sel_hide = true;
        }
    );
    $('.sel_a').focusin(function() {
        sel_hide = false;
    });
    $('.sel_a').focusout(function() {
        sel_hide = true;
    });
    $(document).click(function() {
        if(sv_hide) { // 사이드뷰 해제
            $(".sv").removeClass("sv_on");
        }
        if (sel_hide) { // 셀렉트 ul 해제
            $('.sel_ul').removeClass('sel_on');
        }
    });
    $(document).focusin(function() {
        if(sv_hide) { // 사이드뷰 해제
            $(".sv").removeClass("sv_on");
        }
        if (sel_hide) { // 셀렉트 ul 해제
            $('.sel_ul').removeClass('sel_on');
        }
    });
    $(document).on( "keyup change", "textarea#wr_content[maxlength]", function(){
        var str = $(this).val();
        var mx = parseInt($(this).attr("maxlength"));
        if (str.length > mx) {
            $(this).val(str.substr(0, mx));
            return false;
        }
    });
});
function get_write_token(bo_table)
{
    var token = "";
    $.ajax({
        type: "POST",
        url: g5_bbs_url+"/write_token.php",
        data: { bo_table: bo_table },
        cache: false,
        async: false,
        dataType: "json",
        success: function(data) {
            if(data.error) {
                alert(data.error);
                if(data.url)
                    document.location.href = data.url;
                return false;
            }
            token = data.token;
        }
    });
    return token;
}
$(function() {
    $(document).on("click", "form[name=fwrite] input:submit, form[name=fwrite] button:submit, form[name=fwrite] input:image", function() {
        var f = this.form;
        if (typeof(f.bo_table) == "undefined") {
            return;
        }
        var bo_table = f.bo_table.value;
        var token = get_write_token(bo_table);
        if(!token) {
            alert("토큰 정보가 올바르지 않습니다.");
            return false;
        }
        var $f = $(f);
        if(typeof f.token === "undefined")
            $f.prepend('<input type="hidden" name="token" value="">');
        $f.find("input[name=token]").val(token);
        return true;
    });
});

이 질문에 댓글 쓰기 :

답변 1

자답 입니다. 관리자에 있는 admin.js 맨 밑단에 토큰관련에서

 

이프문으로 해당 게시판의 경우 토큰사용 안함으로 하니까 해결이 되네요!

답변을 작성하시기 전에 로그인 해주세요.
전체 34
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT