증상 : 관리자 페이지에서 게시글 작성 시 오류 뜸
기존에 구버전 5.1.12 에서 최신버전으로 패치 했을 때 문제가 발생합니다.
기존에 사용하던 홈페이지에 그대로 복사 붙여넣기 하면 아무 문제가 없는데,
클린 설치를 위해 새로 설치하고, 게시판을 새로 생성 후 글쓰기를 하면 문제가 발생하네요...
크롬으로 디버깅 해본 결과,
서버 내 common.js 파일이 분명히 같은건데도, 크롬에서 보이는 소스의 내용이 다른점이 확인 되었습니다.
토큰이 넘어가는 부분이 기존에 이미 게시판이 만들어져잇는 상태에서는 삭제가 되어있고,
신규로 만들면 문제가 발생하는데, 해결 방법이 없을까요?
정상작동(기존) common.js 일부분
Copy
/**
* 텍스트 리사이즈
**/
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 다른부분
Copy
/**
* 텍스트 리사이즈
**/
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개 / 댓글 1개
2018-07-28 (토) 17:04:54
자답 입니다. 관리자에 있는 admin.js 맨 밑단에 토큰관련에서
이프문으로 해당 게시판의 경우 토큰사용 안함으로 하니까 해결이 되네요!
답변에 대한 댓글 1개
그누보드초보234
2018-08-13 (월) 19:10:04
답변을 작성하려면 로그인이 필요합니다.
자세히 읽어보니 저도 왠지 같은 에러인 것 같아서요..