테스트 사이트 - 개발 중인 베타 버전입니다

토큰에러 문의 채택완료

사무아미 7년 전 조회 3,130

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

 

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

 

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

 

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

 

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

 

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

 

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

 

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

 

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

</p>

<p>

/**

 * 텍스트 리사이즈

**/

function font_resize(id, rmv_class, add_class)

{

    var $el = $("#"+id);</p>

<p>    $el.removeClass(rmv_class).addClass(add_class);</p>

<p>    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);

}</p>

<p>$(function(){

    $(".win_point").click(function() {

        win_point(this.href);

        return false;

    });</p>

<p>    $(".win_memo").click(function() {

        win_memo(this.href);

        return false;

    });</p>

<p>    $(".win_email").click(function() {

        win_email(this.href);

        return false;

    });</p>

<p>    $(".win_scrap").click(function() {

        win_scrap(this.href);

        return false;

    });</p>

<p>    $(".win_profile").click(function() {

        win_profile(this.href);

        return false;

    });</p>

<p>    $(".win_homepage").click(function() {

        win_homepage(this.href);

        return false;

    });</p>

<p>    $(".win_password_lost").click(function() {

        win_password_lost(this.href);

        return false;

    });</p>

<p>    /*

    $(".win_poll").click(function() {

        win_poll(this.href);

        return false;

    });

    */</p>

<p>    // 사이드뷰

    var sv_hide = false;

    $(".sv_member, .sv_guest").click(function() {

        $(".sv").removeClass("sv_on");

        $(this).closest(".sv_wrap").find(".sv").addClass("sv_on");

    });</p>

<p>    $(".sv, .sv_wrap").hover(

        function() {

            sv_hide = false;

        },

        function() {

            sv_hide = true;

        }

    );</p>

<p>    $(".sv_member, .sv_guest").focusin(function() {

        sv_hide = false;

        $(".sv").removeClass("sv_on");

        $(this).closest(".sv_wrap").find(".sv").addClass("sv_on");

    });</p>

<p>    $(".sv a").focusin(function() {

        sv_hide = false;

    });</p>

<p>    $(".sv a").focusout(function() {

        sv_hide = true;

    });</p>

<p>    // 셀렉트 ul

    var sel_hide = false;

    $('.sel_btn').click(function() {

        $('.sel_ul').removeClass('sel_on');

        $(this).siblings('.sel_ul').addClass('sel_on');

    });</p>

<p>    $(".sel_wrap").hover(

        function() {

            sel_hide = false;

        },

        function() {

            sel_hide = true;

        }

    );</p>

<p>    $('.sel_a').focusin(function() {

        sel_hide = false;

    });</p>

<p>    $('.sel_a').focusout(function() {

        sel_hide = true;

    });</p>

<p>    $(document).click(function() {

        if(sv_hide) { // 사이드뷰 해제

            $(".sv").removeClass("sv_on");

        }

        if (sel_hide) { // 셀렉트 ul 해제

            $('.sel_ul').removeClass('sel_on');

        }

    });</p>

<p>    $(document).focusin(function() {

        if(sv_hide) { // 사이드뷰 해제

            $(".sv").removeClass("sv_on");

        }

        if (sel_hide) { // 셀렉트 ul 해제

            $('.sel_ul').removeClass('sel_on');

        }

    });</p>

<p>    $(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;

        }

    });

});</p>

<p>

 

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

</p>

<p>/**

 * 텍스트 리사이즈

**/

function font_resize(id, rmv_class, add_class, othis)

{

    var $el = $("#"+id);</p>

<p>    $el.removeClass(rmv_class).addClass(add_class);</p>

<p>    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);</p>

<p>    if(typeof othis !== "undefined"){

        $(othis).addClass('select').siblings().removeClass('select');

    }

}</p>

<p>/**

 * 댓글 수정 토큰

**/

function set_comment_token(f)

{

    if(typeof f.token === "undefined")

        $(f).prepend('<input type="hidden" name="token" value="">');</p>

<p>    $.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;

        }

    });

}</p>

<p>$(function(){

    $(".win_point").click(function() {

        win_point(this.href);

        return false;

    });</p>

<p>    $(".win_memo").click(function() {

        win_memo(this.href);

        return false;

    });</p>

<p>    $(".win_email").click(function() {

        win_email(this.href);

        return false;

    });</p>

<p>    $(".win_scrap").click(function() {

        win_scrap(this.href);

        return false;

    });</p>

<p>    $(".win_profile").click(function() {

        win_profile(this.href);

        return false;

    });</p>

<p>    $(".win_homepage").click(function() {

        win_homepage(this.href);

        return false;

    });</p>

<p>    $(".win_password_lost").click(function() {

        win_password_lost(this.href);

        return false;

    });</p>

<p>    /*

    $(".win_poll").click(function() {

        win_poll(this.href);

        return false;

    });

    */</p>

<p>    // 사이드뷰

    var sv_hide = false;

    $(".sv_member, .sv_guest").click(function() {

        $(".sv").removeClass("sv_on");

        $(this).closest(".sv_wrap").find(".sv").addClass("sv_on");

    });</p>

<p>    $(".sv, .sv_wrap").hover(

        function() {

            sv_hide = false;

        },

        function() {

            sv_hide = true;

        }

    );</p>

<p>    $(".sv_member, .sv_guest").focusin(function() {

        sv_hide = false;

        $(".sv").removeClass("sv_on");

        $(this).closest(".sv_wrap").find(".sv").addClass("sv_on");

    });</p>

<p>    $(".sv a").focusin(function() {

        sv_hide = false;

    });</p>

<p>    $(".sv a").focusout(function() {

        sv_hide = true;

    });</p>

<p>    // 셀렉트 ul

    var sel_hide = false;

    $('.sel_btn').click(function() {

        $('.sel_ul').removeClass('sel_on');

        $(this).siblings('.sel_ul').addClass('sel_on');

    });</p>

<p>    $(".sel_wrap").hover(

        function() {

            sel_hide = false;

        },

        function() {

            sel_hide = true;

        }

    );</p>

<p>    $('.sel_a').focusin(function() {

        sel_hide = false;

    });</p>

<p>    $('.sel_a').focusout(function() {

        sel_hide = true;

    });</p>

<p>    $(document).click(function() {

        if(sv_hide) { // 사이드뷰 해제

            $(".sv").removeClass("sv_on");

        }

        if (sel_hide) { // 셀렉트 ul 해제

            $('.sel_ul').removeClass('sel_on');

        }

    });</p>

<p>    $(document).focusin(function() {

        if(sv_hide) { // 사이드뷰 해제

            $(".sv").removeClass("sv_on");

        }

        if (sel_hide) { // 셀렉트 ul 해제

            $('.sel_ul').removeClass('sel_on');

        }

    });</p>

<p>    $(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;

        }

    });

});</p>

<p>function get_write_token(bo_table)

{

    var token = "";</p>

<p>    $.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;</p>

<p>                return false;

            }</p>

<p>            token = data.token;

        }

    });</p>

<p>    return token;

}</p>

<p>$(function() {

    $(document).on("click", "form[name=fwrite] input:submit, form[name=fwrite] button:submit, form[name=fwrite] input:image", function() {

        var f = this.form;</p>

<p>        if (typeof(f.bo_table) == "undefined") {

            return;

        }</p>

<p>        var bo_table = f.bo_table.value;

        var token = get_write_token(bo_table);</p>

<p>        if(!token) {

            alert("토큰 정보가 올바르지 않습니다.");

            return false;

        }</p>

<p>        var $f = $(f);</p>

<p>        if(typeof f.token === "undefined")

            $f.prepend('<input type="hidden" name="token" value="">');</p>

<p>        $f.find("input[name=token]").val(token);</p>

<p>        return true;

    });

});</p>

<p>

댓글을 작성하려면 로그인이 필요합니다.

답변 1개

사무아미

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

 

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

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

그누보드초보234
7년 전
혹시 어떤식으로 수정하셨는지 알려주실수 있나요?ㅜㅜ
자세히 읽어보니 저도 왠지 같은 에러인 것 같아서요..

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인