글수정시 문자가 깨지는 이유가 뭘까요?
본문
안녕하세요.
그누보드5 게시판에 아래 소스를 추가해서 사용중입니다.
글쓰기 화면에 아래처럼 입력란이 있고,
우측의 입력칸 추가를 클릭하면 아래로 입력할 수 있는칸이 계속 나옵니다.
글을 작성하면 본문에 아래 이미지처럼 정상적으로 등록됩니다.
그런데....
문제는 이 글을 수정하면, 첫줄의 2, 3, 4번째 칸의 내용이 아래처럼 깨져버립니다.
몇줄을 입력하건 꼭 첫번째 줄 2, 3, 4번째 칸의 내용만 저렇습니다.
입력칸을 4칸이 아닌 2칸만 하면, 무조건 첫번째 줄 2번째 칸만 깨지고요.
예전에 그누보드 4때부터 사용하던거 계속 수정해서 사용중인데,
예전에는 별 문제 없었는데, 그누보드5에서부터 이런거 같습니다.
검색해보니,
저 마름모꼴+물음표 모양이 나오는게 문서를 UTF-8로 저장하는 과정에서 뭔가 꼬여서 문서가 온전하게 저장되지 못하면 이렇게 된다고 하는데,
어디를 수정해야 할지 감이 오질 않습니다.
제가 사용한 소스는 아래 모두 적었습니다.
혹시 이거 어떻게 수정해야 하는지 아시는 분 계시면 답변 부탁드립니다.
감사합니다.
게시판 write.skin.php에
<?php
if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가
// 추가
if ($w == "u") {
$wr_body_1 = explode("|",substr($write['wr_11'], 1));
$wr_body_2 = explode("|",substr($write['wr_12'], 2));
$wr_body_3 = explode("|",substr($write['wr_13'], 3));
$wr_body_4 = explode("|",substr($write['wr_14'], 4));
}
.
.
.
<script>
function addRow() {
var oRow = dyntbl1.insertRow();
oRow.onmouseover=function(){dyntbl1.clickedRowIndex=this.rowIndex};
var oCell1 = oRow.insertCell();
var oCell2 = oRow.insertCell();
var oCell3 = oRow.insertCell();
var oCell4 = oRow.insertCell();
var oCell5 = oRow.insertCell();
oCell1.innerHTML = "<input class=frm_input style='width:100%;' name=wr_body_1[] itemname='입력칸1' maxlength='20'>";
oCell2.innerHTML = "<input class=frm_input style='width:100%;' name=wr_body_2[] itemname='입력칸2' maxlength='20'>";
oCell3.innerHTML = "<input class=frm_input style='width:100%;' name=wr_body_3[] itemname='입력칸3' maxlength='20'>";
oCell4.innerHTML = "<input class=frm_input style='width:100%;' name=wr_body_4[] itemname='입력칸4' maxlength='20'>";
oCell5.innerHTML = "<input type=button value=\" 삭제 \" onClick=\"delRow()\">";
document.recalc();
}
function delRow() {
dyntbl1.deleteRow(dyntbl1.clickedRowIndex);
}
function delRow_php(r)
{
var i=r.parentNode.parentNode.rowIndex;
document.getElementById('dyntbl2').deleteRow(i);
}
function fixscreen() {
var buffer = document.all.item(0).outerHTML;
document.open("text/html", "replace");
document.write(buffer);
document.close();
}
function addCol() {
var vCell,tmp;
for (var i=0; i<dyntbl1.rows.length; i++) {
tmp=dyntbl1.rows[i].cells[dyntbl1.rows[i].cells.length-1].cloneNode(true);
dyntbl1.rows[i].deleteCell();
vCell=dyntbl1.rows[i].insertCell();
vCell.innerHTML=i==0?"<input type=button value=' X ' onclick='delCol(parentNode.cellIndex)'>":" ";
vCell=dyntbl1.rows[i].insertCell();
vCell.innerHTML=tmp.innerHTML;
}
}
function delCol(idx) {
for (var i=0; i<=dyntbl1.rows.length; i++) {
dyntbl1.rows[i].cells[idx].removeNode();
}
}
</script>
.
.
.
<?php if ($w == "u") { ?>
<table class="schedule1" id="dyntbl2">
<thead>
<tr>
<th class="th1">입력칸1</th>
<th class="th1">입력칸2</th>
<th class="th1">입력칸3</th>
<th class="th1">입력칸4</th>
<th class="th2"></th>
</tr>
</thead>
<tbody>
<?php for ($i = 0; $i < count($wr_body_1); $i++) { ?>
<tr height="30" id=v_<?=$i?>>
<td><input class="frm_input" style="width:100%;" name="wr_body_1[]" itemname="입력칸1" value="<?=$wr_body_1[$i]?>" maxlength="20"></td>
<td><input class="frm_input" style="width:100%;" name="wr_body_2[]" itemname="입력칸2" value="<?=$wr_body_2[$i]?>" maxlength="20"></td>
<td><input class="frm_input" style="width:100%;" name="wr_body_3[]" itemname="입력칸3" value="<?=$wr_body_3[$i]?>" maxlength="20"></td>
<td><input class="frm_input" style="width:100%;" name="wr_body_4[]" itemname="입력칸4" value="<?=$wr_body_4[$i]?>" maxlength="20"></td>
<td><input type=button value=" 삭제 " onClick="delRow_php(this)"></td>
</tr>
<?php } ?>
</tbody>
</table>
<?php } ?>
<table class="schedule1" id="dyntbl1">
<thead>
<tr>
<th class="th1">입력칸1</th>
<th class="th1">입력칸2</th>
<th class="th1">입력칸3</th>
<th class="th1">입력칸4</th>
<th class="th2"><a href="javascript:void(0);" value="입력칸추가 +" onClick="addRow()"><i class="fa fa-plus" aria-hidden="true"></i> 입력칸추가</a></th>
</tr>
</thead>
</table>
write_update.skin.php에
for ($i = 0; $i < count($wr_body_1); $i++)
{
$wr_11 = $wr_11."|".$wr_body_1[$i];
$wr_12 = $wr_12."|".$wr_body_2[$i];
$wr_13 = $wr_13."|".$wr_body_3[$i];
$wr_14 = $wr_14."|".$wr_body_4[$i];
}
$sql11 = "update $write_table set wr_11 = '$wr_11', wr_12 = '$wr_12', wr_13 = '$wr_13', wr_14 = '$wr_14' where wr_id = '$wr_id' ";
sql_query($sql11);
답변을 작성하시기 전에 로그인 해주세요.