토큰에러 문의
본문
증상 : 관리자 페이지에서 게시글 작성 시 오류 뜸
기존에 구버전 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;
});
});
답변을 작성하시기 전에 로그인 해주세요.