어디가 잘못 된건가요?
본문
근데 목록에서는 테이블이 깨어지지 않는데 쓰기 버튼을 누르면 테이블이 깨어지는 현상이 일어납니다.
아래 주소를 클릭해 보시면 테이블이 오른쪽으로 밀려 난것을 보실수 있을 겁니다.
http://mebigkorea.or.kr/gnu/bbs/write.php?bo_table=z7_2
아래 소스는 제가 적용한 스킨의 write.skin.php 전부 입니다.
확인 한번 부탁드립니다.
<?
if (!defined("_GNUBOARD_")) exit; // 개별 페이지 접근 불가
?>
<link rel='stylesheet' type='text/css' href='<?=$board_skin_path?>/bstyle.css'>
<?
if ($w == "") {
$title_msg = "Writing";
} else if ($w == "u") {
$title_msg = "Modify";
} else {
$title_msg = "Reply";
}
?>
<!-- [참고] 옵션필드 --//-->
<? // 귀찮아서 실제로는 '제목필드 변수'대신 수동입력 (관리자모드에 손댈거 없음)
//카테고리분류 : 과목분류(국,영,수...)
//$board[bo_1] = "우선출력 or 추천지정" //--게시물의 출력형태 or 추천 지정시 필요
//$board[bo_2] = "이미지뷰 설정"
//$board[bo_3] = "우편번호1/우편번호2/주소1/주소2";
//$board[bo_4] = "진행상황";
//$board[bo_5] = "전화번호/팩스번호";
//$board[bo_6] = "출제년도";
//$board[bo_7] = "문제유형";
//$board[bo_8] = "출판사/학교명";
//$board[bo_9] = "단원.범위/정답지유무";
//$board[bo_10] = "";
$ex9_filed = explode("|",$write[wr_9]);
$ext9_00 = $ex9_filed[0];
$ext9_01 = $ex9_filed[1];
$ext9_02 = $ex9_filed[2];
?>
<!-- [참고] 옵션필드 --//-->
<script language="JavaScript">
// 글자수 제한
var char_min = parseInt(<?=$write_min?>); // 최소
var char_max = parseInt(<?=$write_max?>); // 최대
</script>
<!-- 김선용 2005.4 - FF(불여우) 에서는 innerHTML 사용시 폼이 <table> 아래에 있으면 인식하지 못합니다. -->
<form name="fwrite" method="post" action="javascript:fwrite_check(document.fwrite);" enctype="multipart/form-data" autocomplete="off" style='margin:0px'>
<!----------- { 레이아웃 테이블 시작 } ------------------------------------------//-->
<table width="<?=$width?>" align=center cellpadding=0 cellspacing=0><tr><td align=center>
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<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=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?>">
</table>
<!--######### 등록자 정보 ##########--//-->
<table width="100%" align="center" cellpadding=5 cellspacing=0 border=0 style='border:1px solid #cccccc'>
<colgroup width='15%' nowrap>
<colgroup width=''>
<colgroup width='15%' nowrap>
<colgroup width=''>
<? if ($is_name) { ?>
<tr height="28">
<td class='b_tit2 b_bg2' style='padding-left:8px;'>+ 등록자명</td>
<td style='padding-left:5px;'><INPUT class=ed maxLength=20 size=15 name=wr_name itemname="이름" required value="<?=$name?>"></td>
<? if ($is_password) { ?>
<td class='b_tit2 b_bg2' style='padding-left:8px;'>+ 패스워드</td>
<td style='padding-left:5px;'><INPUT class=ed type=password maxLength=20 size=15 name=wr_password itemname="패스워드" <?=$password_required?>></td>
<? } ?>
</tr>
<tr><td colspan=4 height="1" bgcolor='#CCCCCC'></td></tr>
<? } ?>
<? if ($is_email) { ?>
<tr height="28">
<td class='b_tit2 b_bg2' style='padding-left:8px;'>+ 이메일</td>
<td colspan=3 style='padding-left:5px;'><INPUT class=ed maxLength=100 size=50 name=wr_email email itemname="이메일" value="<?=$email?>"></td>
</tr>
<? } ?>
</table>
<!--######### 등록자 정보 끝 ##########--//-->
<table width=100%><tr><td></td></tr></table>
<!--######### 학원정보 ##########--//-->
<table width="100%" align="center" cellpadding=5 cellspacing=0 border=0 style='border:1px solid #cccccc'>
<colgroup width='15%' nowrap>
<colgroup width=''>
<colgroup width='15%' nowrap>
<colgroup width=''>
<tr height="28">
<td class='b_tit2 b_bg2' style='padding-left:8px;'>+ 제목글</td>
<td colspan=3 style='padding-left:5px; padding-right:5px;'>
<INPUT class=ed style="width:450; ime-mode:active" name=wr_subject itemname="제목글" required value="<?=$subject?>">
</td>
</tr><tr><td colspan=4 height="1" bgcolor='#CCCCCC'></td></tr>
<tr height="28">
<? if ($is_category) { ?>
<select name=ca_name required itemname="학년선택">
<option value="">학년선택<?=$category_option?>
</select>
<? } ?>
</td>
</tr>
<tr height="28">
<td class='b_tit2 b_bg2' style='padding-left:8px;'>+ 물품명</td>
<td colspan=3 style='padding-left:5px;'>
<select name='wr_6' class="box" required itemname='분류'>
<option selected value=''>분류</option>
<option value='게임' <? if($write[wr_6] == "게임") echo "selected"; ?>>게임</option>
<option value='찬양' <? if($write[wr_6] == "찬양") echo "selected"; ?>>찬양</option>
<option value='캐릭터' <? if($write[wr_6] == "캐릭터") echo "selected"; ?>>캐릭터</option>
<option value='특강' <? if($write[wr_6] == "특강") echo "selected"; ?>>특강</option>
<option value='기타' <? if($write[wr_6] == "기타") echo "selected"; ?>>기타</option>
</select>
+
<select name='wr_7' class="box" required itemname='상세분류'>
<option selected value=''>상세분류</option>
<option value='1강-어린이들이 즐거울 때 마음을 연다' <? if($write[wr_7] == "1강-어린이들이 즐거울 때 마음을 연다") echo "selected"; ?>>1강-어린이들이 즐거울 때 마음을 연다</option>
<option value='2강-교사들이 예배를 준비할 때 어린이가 예배한다' <? if($write[wr_7] == "2강-교사들이 예배를 준비할 때 어린이가 예배한다") echo "selected"; ?>>2강-교사들이 예배를 준비할 때 어린이가 예배한다</option>
<option value='3강-교사가 기도할 때 어린이가 변화한다' <? if($write[wr_7] == "3강-교사가 기도할 때 어린이가 변화한다") echo "selected"; ?>>3강-교사가 기도할 때 어린이가 변화한다</option>
<option value='4강-전도지향적 교회학교가 성장한다' <? if($write[wr_7] == "4강-전도지향적 교회학교가 성장한다") echo "selected"; ?>>4강-전도지향적 교회학교가 성장한다</option>
<option value='메빅찬양율동 DVD+ 찬양집' <? if($write[wr_7] == "메빅찬양율동 DVD+ 찬양집") echo "selected"; ?>>메빅찬양율동 DVD+ 찬양집</option>
<option value='MEBIG Character1집' <? if($write[wr_7] == "MEBIG Character1집") echo "selected"; ?>>MEBIG Character1집</option>
<option value='MEBIG GAME 1집' <? if($write[wr_7] == "MEBIG GAME 1집") echo "selected"; ?>>MEBIG GAME 1집</option>
<option value='MEBIG GAME 2집' <? if($write[wr_7] == "MEBIG GAME 2집") echo "selected"; ?>>MEBIG GAME 2집</option>
<option value='MEBIG GAME 3집' <? if($write[wr_7] == "MEBIG GAME 3집") echo "selected"; ?>>MEBIG GAME 3집</option>
<option value='어린이양육교제세트' <? if($write[wr_7] == "어린이양육교제세트") echo "selected"; ?>>어린이양육교제세트</option>
<option value='CD-MEBIG찬양대폭발1집' <? if($write[wr_7] == "CD-MEBIG찬양대폭발1집") echo "selected"; ?>>CD-MEBIG찬양대폭발1집</option>
<option value='CD-MEBIG찬양대폭발2집' <? if($write[wr_7] == "CD-MEBIG찬양대폭발2집") echo "selected"; ?>>CD-MEBIG찬양대폭발2집</option>
<option value='악보집-MEBIG찬양대폭발1집' <? if($write[wr_7] == "악보집-MEBIG찬양대폭발1집") echo "selected"; ?>>악보집-MEBIG찬양대폭발1집</option>
<option value='악보집-MEBIG찬양대폭발2집' <? if($write[wr_7] == "악보집-MEBIG찬양대폭발2집") echo "selected"; ?>>악보집-MEBIG찬양대폭발2집</option>
<option value='악보집-MEBIG찬양대폭발3집' <? if($write[wr_7] == "악보집-MEBIG찬양대폭발3집") echo "selected"; ?>>악보집-MEBIG찬양대폭발3집</option>
<option value='악보집-MEBIG찬양대폭발4집' <? if($write[wr_7] == "악보집-MEBIG찬양대폭발4집") echo "selected"; ?>>악보집-MEBIG찬양대폭발4집</option>
<option value='악보집-MEBIG찬양대폭발8집' <? if($write[wr_7] == "악보집-MEBIG찬양대폭발8집") echo "selected"; ?>>악보집-MEBIG찬양대폭발8집</option>
</select><font color=blue>※ 상품명 확인하세요!</font>
</td>
</tr>
<tr><td colspan=4 height="1" bgcolor='#CCCCCC'></td></tr>
<tr height="28">
<td class='b_tit2 b_bg2' style='padding-left:8px;'>+ 입금자명</td>
<td colspan=3 style='padding-left:5px;'>
<INPUT class=ed style="width:250;" name='wr_8' value="<?=$write[wr_8]?>" required itemname='입금자명'> ※ 입금자명을 정확히 기재
</td>
</tr>
<tr><td colspan=4 height="1" bgcolor='#CCCCCC'></td></tr>
<tr height="28">
<td class='b_tit2 b_bg2' style='padding-left:8px;'>+ 입금일자</td>
<td colspan=3 style='padding-left:5px;'>
<INPUT class=ed style="width:250;" name='ext9_01' value="<?=$ext9_01?>" required itemname='입금일자'> ※ 기재방법: 0000-00-00
</td>
</tr>
<tr><td colspan=4 height="1" bgcolor='#CCCCCC'></td></tr>
<tr height="28">
<td class='b_tit2 b_bg2' style='padding-left:8px;'>+ 입금금액</td>
<td colspan=3 style='padding-left:5px;'>
<INPUT class=ed style="width:250;" name='wr_5' value="<?=$write[wr_5]?>" required itemname='입금금액'> ※ 입금하신(실) 금액을 기재
</td>
</tr>
<tr height="28">
<td class='b_tit2 b_bg2' style='padding-left:8px;'>+ 입금결과</td>
<td colspan=3 style='padding-left:5px;'>
<input type=radio name='ext9_02' value='완료' <? if($ext9_02 == "완료") echo "checked"; ?>>완료
<input type=radio name='ext9_02' value='예정' <? if($ext9_02 == "예정") echo "checked"; ?>>예정
</td>
</tr>
</table>
<!--######### 학원정보 끝 ##########--//-->
<table width=100%><tr><td></td></tr></table>
<!--######### 상세정보및 기타 #######--//-->
<table width="100%" align="center" cellpadding=5 cellspacing=0 border=0 style='border:1px solid #cccccc'>
<colgroup width='15%' nowrap>
<colgroup width=''>
<colgroup width='15%' nowrap>
<colgroup width=''>
<tr height="28">
<td class='b_tit2 b_bg2' style='padding-left:8px;'>+ 글쓰기 옵션</td>
<td colspan=3 style='padding-left:5px;'>
<? if ($is_notice) { ?><input type=checkbox name=notice value="1" <?=$notice_checked?>>공지 <? } ?>
<? if ($is_html) { ?><INPUT onclick="html_auto_br(this);" type=checkbox value="<?=$html_value?>" name="html" <?=$html_checked?>><span class=w_title>HTML</span> <? } ?>
<? if ($is_secret) { ?><INPUT type=checkbox value="secret" name="secret" <?=$secret_checked?>><span class=w_title>비밀글</span> <? } ?>
<!--<INPUT type=checkbox value="mail" name="mail" <?=$recv_email_checked?>>답변메일받기 --//--></td>
</tr>
<tr><td colspan=4 height="1" bgcolor='#CCCCCC'></td></tr>
<tr>
<td class='b_tit2 b_bg2' style='padding-left:8px;'>+ 받으실 주소</td>
<td colspan=3 style='padding:5px;'>
<table width=100% cellpadding=0 cellspacing=0>
<tr>
<td width=50% align=left valign=bottom>
<SPAN style="CURSOR: pointer;" onclick="textarea_decrease('wr_content', 5);"><img src="<?=$board_skin_path?>/img/up.gif" width="16" height="16"></SPAN>
<SPAN style="CURSOR: pointer;" onclick="textarea_original('wr_content', 5);"><img src="<?=$board_skin_path?>/img/start.gif" width="16" height="16"></SPAN>
<SPAN style="CURSOR: pointer;" onclick="textarea_increase('wr_content', 5);"><img src="<?=$board_skin_path?>/img/down.gif" width="16" height="16"></SPAN></td>
<td width=50% align=right><? if ($write_min || $write_max) { ?><span id=char_count></span>글자<?}?></td>
</tr>
</table>
<TEXTAREA id=wr_content name=wr_content class=tx style='width:100%; word-break:break-all;' rows=5 itemname="내용" required
<? if ($write_min || $write_max) { ?>ONKEYUP="check_byte('wr_content', 'char_count');"<?}?>><?=$content?></TEXTAREA>
<? if ($write_min || $write_max) { ?><script language="JavaScript"> check_byte('wr_content', 'char_count'); </script><?}?></td>
</tr>
<tr><td colspan=4 height="1" bgcolor='#CCCCCC'></td></tr>
<!--
<? if ($is_link) { ?>
<? for ($i=1; $i<=$g4[link_count]; $i++) { ?>
<tr>
<td class='b_tit2 b_bg2' style='padding-left:8px;'>+ 홈페이지 #<?=$i?></td>
<td colspan=3 style='padding-left:5px;'>
<INPUT type='text' class=ed size=50 name='wr_link<?=$i?>' value='<?=$write["wr_link{$i}"]?>' itemname='링크 #<?=$i?>' >
</td>
</tr>
<? } ?>
<? } ?>
--//-->
<? if ($is_file) { ?>
<tr>
<td class='b_tit2 b_bg2' style='padding-left:8px;'>+ 입금확인후</td>
<td colspan=3 style='padding-left:5px;'>
<font color='red'>※ 받으실 주소란에 간이영수증 유무와 기타 내용도 적어 주세요.</font>
</td>
</tr>
<table id="variableFiles" cellpadding=0 cellspacing=0></table><?// print_r2($file); ?>
<script language="JavaScript">
function add_file(delete_code)
{
var objTbl;
var objRow;
var objCell;
if (document.getElementById)
objTbl = document.getElementById("variableFiles");
else
objTbl = document.all["variableFiles"];
objRow = objTbl.insertRow(objTbl.rows.length);
objCell = objRow.insertCell(0);
objCell.innerHTML = "<input type='file' class=ed size=32 name='bf_file[]' title='파일 용량 <?=$upload_max_filesize?> 이하만 업로드 가능'>";
if (delete_code)
objCell.innerHTML += delete_code;
else
{
<? if ($is_file_content) { ?>
objCell.innerHTML += "<br><input type='text' class=ed size=50 name='bf_content[]' title='업로드 이미지 파일에 해당 되는 내용을 입력하세요.'>";
<? } ?>
;
}
}
<?=$file_script; //수정시에 필요한 스크립트?>
function del_file()
{
// file_length 이하로는 필드가 삭제되지 않아야 합니다.
var file_length = <?=(int)$file_length?>;
var objTbl = document.getElementById("variableFiles");
if (objTbl.rows.length - 1 > file_length)
objTbl.deleteRow(objTbl.rows.length - 1);
}
</script></td>
</tr>
<!---------- {여유필드 사용 끝} ---------------//--->
<? } ?>
</table>
<table width=100%><tr><td></td></tr></table>
<table width="100%" align="center" cellpadding=5 cellspacing=0 border=0 style='border:1px solid #cccccc'>
<colgroup width='15%' nowrap>
<colgroup width=''>
<colgroup width='15%' nowrap>
<colgroup width=''>
<? if ($is_trackback) { ?>
<tr height="28">
<td class='b_tit2 b_bg2' style='padding-left:8px;'>+ 트랙백주소</td>
<td colspan=3 style='padding-left:5px;'>
<INPUT class=ed size=50 name=wr_trackback itemname="트랙백" value="<?=$trackback?>">
<? if ($w=="u") { ?><input type=checkbox name="re_trackback" value="1">핑 보냄<? } ?>
</td>
</tr>
<? } ?>
<? if ($is_norobot) { ?>
<tr height="28">
<td class='b_tit2 b_bg2' style='padding-left:8px;'>+ <?=$norobot_str?></td>
<td colspan=3 style='padding-left:5px;'>
<INPUT class=ed type=input size=12 name=wr_key itemname="자동등록방지" required> * 왼쪽의 글자중 <FONT COLOR="red">빨간글자만</FONT> 순서대로 입력하세요.
</td>
</tr>
<? } ?>
</table>
<br>
<!-- 버튼 table --//-->
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="100%" align="center" valign="top">
<input type=image id="btn_submit" src="<?=$board_skin_path?>/img/btn_write.gif" border=0 accesskey='s'>
<a href="./board.php?bo_table=<?=$bo_table?>"><img id="btn_list" src="<?=$board_skin_path?>/img/btn_list.gif" border=0></a></td>
</tr>
</table>
<!--######### 상세정보및 기타 끝 #######--//-->
<!----------- { 레이아웃 테이블 아래. 끝 } ------------------------------------------//-->
</td></tr></table>
</form>
<!---- 숫자만 입력받는 스크립터 --//-->
<script>
function onlyNumber(objtext1){
var inText = objtext1.value;
var ret;
for (var i = 0; i < inText.length; i++) {
ret = inText.charCodeAt(i);
if (!((ret > 47) && (ret < 58))) {
alert("숫자만을 입력하세요");
objtext1.value = "";
objtext1.focus();
return false;
}
}
if (objtext1.value.length==6) {
document.form1.RNI_idnum2.focus() ;
}
return true;
}
</script>
<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 (f.ext9_02[0].checked==false && f.ext9_02[1].checked==false) {
alert('입금결과를 체크해주세요');
f.ext9_02[0].focus();
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;
}
}
if (typeof(f.wr_key) != "undefined") {
if (hex_md5(f.wr_key.value) != md5_norobot_key) {
alert("자동등록방지용 빨간글자가 순서대로 입력되지 않았습니다.");
f.wr_key.focus();
return;
}
}
f.action = "./write_update.php";
f.submit();
}
</script>
댓글목록 2
제로님의 댓글
제로쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 작성일
왼쪽메뉴에서 새글있을때 갯수 표시기능 관련소스입니다.
응용하셔서 보강 하시면 더욱 좋을것 같습니다.
//게시판 권한 설정 적용, 전체 검색사용에 체크된 게시판만 메뉴에 보이기
$sql2 = " select bo_subject, bo_table, bo_new from $g4[board_table] where (bo_list_level <= $member[mb_level]) and (gr_id = '$row[gr_id]') and bo_use_search = '1' order by bo_subject ";
$result2 = sql_query($sql2);
for ($j=0; $row2=sql_fetch_array($result2); $j++) {
//해당 게시판 변수선언 - 헐랭이님 소스코드 참조
$tmp_write_table = $g4[write_prefix] . $row2[bo_table];
// bo_new에서 지정한 시간과 글쓴 날짜 비교
$new_time = date("Y-m-d H:i:s", time()-3600*$row2[bo_new]);
$sql_new = " select wr_datetime from $tmp_write_table where wr_datetime >= '$new_time' ";
$result_new = sql_query($sql_new);
// 지정한 시간내 게시판 전체 새글 갯수 및 new아이콘
$bn_count = mysql_num_rows($result_new);
if ($bn_count > 0) {
//$new = " <font class=small color=silver>($bn_count)</font> <img src='$g4[path]/gnusr/images/icon/icon_new.gif' border='0'>";
$new = " <font class=small color=silver>($bn_count)</font>";//새글 있을때만 갯수 표시
}else{
$new = "";
}
$style = "";
if ($row2[bo_table] == $bo_table)//해당 게시판 강조
$style = " style='font-weight:normal; color:darkblue;' ";
$bo_sub = "<span $style>" . cut_str(get_text($row2[bo_subject]),20,"") . "</span>";
echo "
<div style='width:120; height:15; padding-top:5; padding-left:15px;padding-right:0px;'><a href='$g4[bbs_path]/board.php?bo_table=$row2[bo_table]'>$bo_sub</a>$new</div>";
}
-그누아뒤 : 플록
제로님의 댓글
제로쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 작성일스킨의 문제는 각 스킨제작자에게 문의 하여 주시기 바랍니다..
참고로 테이블이 밀리는 현상은 테이블 정의에서 무언가 빠졌을 경우가 많습니다~
하나하나 보면서 일일이 찾아 봐야 합니다.