관리자가 아니면 스크립트 에러가 나서 글쓰기가 안됩니다. (급질문)

write.skin.php에서 스크립트 에러가 납니다. 관리자가 아니면 스크립트 에러가 나는데 이런 경우는 어디를 봐야 하나요 ?

게시판은 권한 2 이상(로그인상태)이면 글쓰기가 가능하게 설정되어져 있습니다.

아래는 해당 write.skin.php의 전체 소스 입니다.

=========================================================

<?
if (!defined("_GNUBOARD_")) exit; // 개별 페이지 접근 불가
include_once("$g4[path]/lib/cheditor.lib.php");
if ($w != 'u') $content = '';
?>

<script src="<?=$g4[editor_path]?>/cheditor.js"></script>

<script language="javascript">
// 글자수 제한
var char_min = parseInt(<?=$write_min?>); // 최소
var char_max = parseInt(<?=$write_max?>); // 최대

function fChangeState1(chk) {
if (chk.value == "%EC%A4%91%ED%95%9C%EC%82%AC%EC%A0%84") {
document.fwrite.wr_1.disabled = false;
}
if (chk.value == "%ED%95%9C%EC%A4%91%EC%82%AC%EC%A0%84" || chk.value == "") {
document.fwrite.wr_1.value = "";
document.fwrite.wr_1.disabled = true;
}
}

function fChangeState2(chk) {
if (chk == "ON") {
document.fwrite.wr_9.disabled = false;
}
if (chk == "OFF") {
document.fwrite.wr_9.value = "";
document.fwrite.wr_9.disabled = true;
}
}

function pinyin_check(ref) {
var wr_subject = eval(document.fwrite.wr_subject);

if(!wr_subject.value) {
alert('단어를 입력하신 후에 클릭하세요!');
wr_subject.focus();
return;
} else {
if(wr_subject.value.length < 1) {
alert("단어는 1자 이상이어야 합니다.");
wr_subject.focus();
return;
}
ref = ref + "?wr_subject=" + wr_subject.value;

window.open(ref,"","height=300,width=400,toolbar=no,menubar=no,scrollbars=no,status=no");
}
}

</script>
<br>
<!-- 김선용 2005.4 - ff(불여우) 에서는 innerhtml 사용시 폼이 <table> 아래에 있으면 인식하지 못합니다. -->
<form name="fwrite" method="post" action="javascript:fwrite_check(document.fwrite);" enctype="multipart/form-data" style="margin:0px;">
<input type=hidden name=null><!-- 삭제하지 마십시오. -->
<input type=hidden name=w value="<?=$w?>">
<input type=hidden name=bo_table value="<?=$bo_table?>">
<input type=hidden name=wr_id value="<?=$wr_id?>">
<input type=hidden name=sca value="<?=$sca?>">
<input type=hidden name=sfl value="<?=$sfl?>">
<input type=hidden name=stx value="<?=$stx?>">
<input type=hidden name=spt value="<?=$spt?>">
<input type=hidden name=sst value="<?=$sst?>">
<input type=hidden name=sod value="<?=$sod?>">
<input type=hidden name=page value="<?=$page?>">
<?=cheditor1('wr_content', $content);?>

<table width="<?=$width?>" align=center cellpadding=0 cellspacing=0>
<tr>
<td height="28" align=center bgcolor="#f4f4f4">
<?=$title_msg?>
</td>
</tr>
<tr>
<td>

<table width="100%" border="0" cellspacing="2" cellpadding="0">
<? if ($is_name) { ?>
<tr><td colspan="2" height="1" background="<?=$g4[path]?>/images/dot.gif"></td></tr>
<tr height="28">
<td style="padding-left:10px;" bgcolor="#F8F8F8" class="m_tit2">이름</td>
<td style="padding-left:5px;"><input class=form maxlength=20 size=15 name=wr_name itemname="이름" required value="<?=$name?>"></td></tr>
<tr><td colspan="2" height="1" background="<?=$g4[path]?>/images/dot.gif"></td></tr>
<? } ?>

<? if ($is_password) { ?>
<tr height="28">
<td style="padding-left:10px;" bgcolor="#F8F8F8" class="m_tit2">패스워드</td>
<td style="padding-left:5px;"><input class=form type=password maxlength=20 size=15 name=wr_password itemname="패스워드" required <?=$password?>></td></tr>
<? } ?>

<? if ($is_notice || $is_secret || $is_mail) { ?>
<tr><td colspan="2" height="1" background="<?=$g4[path]?>/images/dot.gif"></td></tr>
<tr height="28">
<td style="padding-left:10px;" bgcolor="#F8F8F8" class="m_tit2">옵션</td>
<td style="padding-left:5px;">
<? if ($is_notice) { ?><input type=checkbox name=notice value="1" <?=$notice_checked?>>공지&nbsp;<? } ?>
<?/* if ($is_html) { ?><INPUT onclick="html_auto_br(this);" type=checkbox value="<?=$html_value?>" name="html" <?=$html_checked?>><span class=w_title>HTML</span>&nbsp;<? } */?>

<? if ($is_secret) { ?><input type=checkbox value="secret" name="secret" <?=$secret_checked?>><span class=w_title>비밀글</span>&nbsp;<? } ?>
<? if ($is_mail) { ?><input type=checkbox value="mail" name="mail" <?=$recv_email_checked?>>답변메일받기&nbsp;<? } ?>
</td>
</tr>
<tr><td colspan="2" height="1" background="<?=$g4[path]?>/images/dot.gif"></td></tr>
<? } ?>
<input type='hidden' name='html' value='html1'><!-- view page에서 html 소스가 다보여서 옮김.-->

<?/* if ($is_email) { ?>
<tr height="28">
<td style="padding-left:10px;" bgcolor="#F8F8F8" class="m_tit2">이메일</td>
<td style="padding-left:5px;"><input class=form size=50 name=wr_email itemname="이메일" value="<?=$email?>"></td>
</tr>
<tr><td colspan="2" height="1" background="<?=$g4[path]?>/images/dot.gif"></td></tr>
<? } */?>

<? if ($is_category) { ?>
<tr height="28">
<td style="padding-left:10px;" bgcolor="#F8F8F8" class="m_tit2">분류</td>
<td style="padding-left:5px;"><select name=ca_name itemname="분류" required onChange="fChangeState1(this)"><option value="">선택하세요<?=$category_option?></select></td></tr>
<tr><td colspan="2" height="1" background="<?=$g4[path]?>/images/dot.gif"></td></tr>
<? } ?>
<tr height="28">
<td style="padding-left:10px;" bgcolor="#F8F8F8" class="m_tit2">단어</td>
<td style="padding-left:5px;"><input class=form style="width:85%;" name=wr_subject itemname="단어" required value="<?=$subject?>">&nbsp;<!--a href="#"><img id="btn_overlap" src="<?=$g4[path]?>/images/btn_overlap.gif" border=0 align="absmiddle"></a--></td></tr>
<tr><td colspan="2" height="1" background="<?=$g4[path]?>/images/dot.gif"></td>
</tr>
<tr height="28">
<td style="padding-left:10px;" bgcolor="#F8F8F8" class="m_tit2">병음</td>
<td style="padding-left:5px;"><input class=form style="width:85%;" name=wr_1 itemname="병음" value="<?=$write[wr_1]?>">&nbsp;<a href="javascript:pinyin_check('<?=$g4['cndb_path']?>/insert_pinyin.html')"><img id="btn_pinyin" src="<?=$g4[path]?>/images/btn_pinyin.gif" border=0 align="absmiddle"></a></td></tr>
<tr><td colspan="2" height="1" background="<?=$g4[path]?>/images/dot.gif"></td>
</tr>
<tr height="28">
<td style="padding-left:10px;" bgcolor="#F8F8F8" class="m_tit2">목록</td>
<td style="padding-left:5px;">
<input type=radio name=wr_2 value="일반단어"<? if ($write[wr_2]=="일반단어") echo "checked"; ?>>일반단어
<input type=radio name=wr_2 value="전문용어"<? if ($write[wr_2]=="전문용어") echo "checked"; ?>>전문용어
<input type=radio name=wr_2 value="신조어"<? if ($write[wr_2]=="신조어") echo "checked"; ?>>신조어
<input type=radio name=wr_2 value="유행어"<? if ($write[wr_2]=="유행어") echo "checked"; ?>>유행어
<input type=radio name=wr_2 value="인터넷은어"<? if ($write[wr_2]=="인터넷은어") echo "checked"; ?>>인터넷은어
</td></tr>
<tr><td colspan="2" height="1" background="<?=$g4[path]?>/images/dot.gif"></td>
</tr>

<tr bgcolor="#F8F8F8">
<td style="padding-left:10px;" class="m_tit2" colspan="2" height="28">내용
</td>
</tr>
<tr>
<td colspan="2" height="1" background="<?=$g4[path]?>/images/dot.gif"></td>
</tr>
<tr>
<td style="padding:10 0 10 ;" class="m_tit2" colspan="2">
<?=cheditor2('fwrite', 'wr_content', '100%', '350');?>
</td>
</tr>
<tr>
<td colspan="2" height="1" background="<?=$g4[path]?>/images/dot.gif"></td>
</tr>
<tr height="28">
<td style="padding-left:10px;" bgcolor="#F8F8F8" class="m_tit2">중문예문</td>
<td style="padding-left:5px;"><input class=form style="width:100%;" name=wr_3 itemname="중문예문" value="<?=$write[wr_3]?>"></td></tr>
<tr><td colspan="2" height="1" background="<?=$g4[path]?>/images/dot.gif"></td>
</tr>
<tr height="28">
<td style="padding-left:10px;" bgcolor="#F8F8F8" class="m_tit2">한글해석</td>
<td style="padding-left:5px;"><input class=form style="width:100%;" name=wr_4 itemname="한글해석" value="<?=$write[wr_4]?>"></td></tr>
<tr><td colspan="2" height="1" background="<?=$g4[path]?>/images/dot.gif"></td>
</tr>
<tr height="28">
<td style="padding-left:10px;" bgcolor="#F8F8F8" class="m_tit2">유의어</td>
<td style="padding-left:5px;"><input class=form style="width:100%;" name=wr_5 itemname="유의어" value="<?=$write[wr_5]?>"></td></tr>
<tr><td colspan="2" height="1" background="<?=$g4[path]?>/images/dot.gif"></td>
</tr>
<tr height="28">
<td style="padding-left:10px;" bgcolor="#F8F8F8" class="m_tit2">동의어</td>
<td style="padding-left:5px;"><input class=form style="width:100%;" name=wr_6 itemname="동의어" value="<?=$write[wr_6]?>"></td></tr>
<tr><td colspan="2" height="1" background="<?=$g4[path]?>/images/dot.gif"></td>
</tr>
<tr height="28">
<td style="padding-left:10px;" bgcolor="#F8F8F8" class="m_tit2">반의어</td>
<td style="padding-left:5px;"><input class=form style="width:100%;" name=wr_7 itemname="반의어" value="<?=$write[wr_7]?>"></td></tr>
<tr><td colspan="2" height="1" background="<?=$g4[path]?>/images/dot.gif"></td>
</tr>
<tr height="50">
<td style="padding-left:10px;" bgcolor="#F8F8F8" class="m_tit2">출처</td>
<td style="padding-left:5px;">
<input type="radio" name="wr_8" <?if($write[wr_8]=='직접저술') echo "checked";?> value="직접저술" onClick=fChangeState2("OFF")>
직접저술
<input type="radio" name="wr_8" <?if($write[wr_8]=='기타') echo "checked";?> value="기타" onClick=fChangeState2("ON")>
기타<br>
<input class=form style="width:100%;" name=wr_9 itemname="출처" value="<?=$write[wr_9]?>"></td></tr>
<tr><td colspan="2" height="1" background="<?=$g4[path]?>/images/dot.gif"></td>
</tr>

<? if ($is_trackback) { ?>
<tr>
<td style='padding-left:20px; height:30px;'>· 트랙백주소</td>
<td>
<input class=form size=50 name=wr_trackback itemname="트랙백" value="<?=$trackback?>">
<? if ($w=="u") { ?><input type=checkbox name="re_trackback" value="1">핑 보냄<? } ?>
</td>
</tr>
<tr><td colspan="2" height="1" background="<?=$g4[path]?>/images/dot.gif"></td></tr>
<? } ?>

<? if ($is_norobot) { ?>
<tr>
<td style='padding-left:20px; height:30px;'>· <?=$norobot_str?></td>
<td><input class=ed type=input size=10 name=wr_key itemname="자동등록방지" required>&nbsp;&nbsp;* 왼쪽의 글자중 <font color="red">빨간글자만</font> 순서대로 입력하세요.</td>
</tr>
<tr><td colspan="2" height="1" background="<?=$g4[path]?>/images/dot.gif"></td></tr>
<? } ?>
</table>

<br>

<!-- 버튼 table --//-->
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td align="center" valign="top">
<input type=image id="btn_submit" src="<?=$g4[path]?>/images/btn_ok.gif" border=0 accesskey='s'>&nbsp;
<a href="./board.php?bo_table=<?=$bo_table?>"><img id="btn_list" src="<?=$g4[path]?>/images/btn_list.gif" border=0></a>
</td>
</tr>
</table>

</td>
</tr>
</table>
</form>

<br>

<script language="javascript">
<?
// 관리자라면 분류 선택에 '공지' 옵션을 추가함
if ($is_admin)
{
echo "
if (typeof(document.fwrite.ca_name) != 'undefined')
{
document.fwrite.ca_name.options.length += 1;
document.fwrite.ca_name.options[document.fwrite.ca_name.options.length-1].value = '공지';
document.fwrite.ca_name.options[document.fwrite.ca_name.options.length-1].text = '공지';
}";
}
?>

with (document.fwrite) {
if (typeof(wr_name) != "undefined")
wr_name.focus();
else if (typeof(wr_subject) != "undefined")
wr_subject.focus();
else if (typeof(wr_content) != "undefined")
wr_content.focus();

if (typeof(ca_name) != "undefined")
if (w.value == "u")
ca_name.value = "<?=$write[ca_name]?>";
}

function html_auto_br(obj)
{
if (obj.checked) {
result = confirm("자동 줄바꿈을 하시겠습니까?\n\n자동 줄바꿈은 게시물 내용중 줄바뀐 곳을<br>태그로 변환하는 기능입니다.");
if (result)
obj.value = "html2";
else
obj.value = "html1";
}
else
obj.value = "";
}

function fwrite_check(f)
{
var s = "";
if (s = word_filter_check(f.wr_subject.value)) {
alert("제목에 금지단어('"+s+"')가 포함되어있습니다");
return;
}

if (s = word_filter_check(f.wr_content.value)) {
alert("내용에 금지단어('"+s+"')가 포함되어있습니다");
return;
}

if (char_min > 0 || char_max > 0)
{
var cnt = parseInt(document.getElementById('char_count').innerHTML);
if (char_min > 0 && char_min > cnt)
{
alert("내용은 "+char_min+"글자 이상 쓰셔야 합니다.");
return;
} else if (char_max > 0 && char_max < cnt)
{
alert("내용은 "+char_max+"글자 이하로 쓰셔야 합니다.");
return;
}
}

for (i=0; i<fwrite.wr_2.length; i++) {
if(fwrite.wr_2[i].checked == true) break;
}
if (i == fwrite.wr_2.length) {
alert("목록 : 필수 선택입니다.");
return;
}

for (i=0; i<fwrite.wr_8.length; i++) {
if(fwrite.wr_8[i].checked == true) break;
}
if (i == fwrite.wr_8.length) {
alert("출처 : 필수 선택입니다.");
return;
}

if (typeof(f.wr_key) != "undefined") {
if (hex_md5(f.wr_key.value) != md5_norobot_key) {
alert("자동등록방지용 빨간글자가 순서대로 입력되지 않았습니다.");
f.wr_key.focus();
return;
}
}
<?=cheditor3('wr_content');?>
f.action = "./write_update.php";
f.submit();
}
</script>
|

댓글 2개

정확한건 실페이지에서 테스트를 해봐야 알겠으나...관리자로 로그인했을경우에만 제대로 된다는것은
관리자가 로그인햇을때만 존재하는 필드등이 스크립트 체크시에 걸려잇으므로 오류가 나는것으로 판단되네요..관리자와 관계된 메뉴는 보통 공지쪽이 있겠죠?
맞네요. 관리자 페이지에서 글자수 제한(0으로)을 없애니까 되네요. 왜 그런지는 아직도 모르겠습니다만 ... ^^;;
댓글을 작성하시려면 로그인이 필요합니다. 로그인

그누4 질문답변

그누보드4 관련 질문은 QA 로 이전됩니다. QA 그누보드4 바로가기 기존 게시물은 열람만 가능합니다.

+
제목 글쓴이 날짜 조회
17년 전 조회 996
17년 전 조회 1,231
17년 전 조회 892
17년 전 조회 928
17년 전 조회 717
17년 전 조회 745
17년 전 조회 999
17년 전 조회 1,536
17년 전 조회 910
17년 전 조회 950
17년 전 조회 1,508
17년 전 조회 1,192
17년 전 조회 771
17년 전 조회 744
17년 전 조회 817
17년 전 조회 747
17년 전 조회 778
17년 전 조회 967
17년 전 조회 951
17년 전 조회 1,533
🐛 버그신고