여분필드 20개 만들었습니다.
본문
https://gnustudy.com/bbs/board.php?bo_table=skin_board&wr_id=31
참고하여 wr_11 부터 wr_20 까지 만들었구요.
phpmyadmin에 테이블 추가했고 bbs에서 writeupdate도 수정했습니다.
설정에서 글 작성시 DHTML 에디터 사용도 체크했습니다.
스킨폴더 내에 write_update.skin.php 도 만들어서
<?php
if (!defined("_GNUBOARD_")) exit;
$sql = " update $write_table
set wr_11 = '$wr_11',
wr_12 = '$wr_12',
wr_13 = '$wr_13',
wr_14 = '$wr_14',
wr_15 = '$wr_15',
wr_16 = '$wr_16',
wr_17 = '$wr_17',
wr_18 = '$wr_18',
wr_19 = '$wr_19',
wr_20 = '$wr_20'
where wr_id = '$wr_id' ";
sql_query($sql);
?>
도 추가했습니다.
문제는, 이 여분필드를 단순 input이 아닌,
cheditor5 를 모두 넣어 사용하고 있는데요.
wr_3 부터 wr_20 까지가 모두 에디터입니다.
이렇게요.
wr_10 까지는 태그가 들어간 텍스트도 잘 저장되는데 wr_11부터 20까지는 단순 텍스트만 저장되고 태그가 들어간 걸 붙여넣기 하면 저장도 되지 않습니다.
뭐가 문젠지 도저히 모르겠습니다..
!-->답변 5
<tr>
<th scope="row"><label for="wr_11">에디터2</label></th>
<td class="wr_11">
<?php echo editor_html("wr_11", $write['wr_11'], $is_dhtml_editor); ?>
</td>
</tr>
그리고
function fwrite_submit(f) 하단에 찾아서 안에다넣어주세요
<?php echo get_editor_js("wr_11"); ?>
<?php echo chk_editor_js("wr_11"); ?>
=====================================
확인후 12~20까찌 똑같이 처리해주시면됩니다.
아래 참고하시면되겠습니다.
https://gnustudy.com/bbs/board.php?bo_table=skin_board&wr_id=14
말씀주신 내용 역시 이미 write.skin에 추가되어 있습니다.
<?php for ($i = 3; $i <= 20; $i++) { ?>
<div class="write_div">
<p class="tb-title">추가입력 <?php echo $i ?></p>
<?php echo editor_html("wr_{$i}", $write["wr_{$i}"], $is_dhtml_editor); ?>
</div>
<?php } ?>
필수입력은 빼고 싶어서 chk_editor_js 는 빼고
<?php
for ($i = 3; $i <= 10; $i++) {
echo get_editor_js("wr_{$i}");
}
?>
이렇게 들어가있는 상태입니다.
!-->!-->echo get_editor_js("wr_{$i}"); <==이게 for문으로 i 값이 10 까지만 적용되니 10번 이후는 안되는 것입니다
for ($i = 3; $i <= 20; $i++) { <==이렇게 하세요
write.skin.php
function fwrite_submit(f)의 안에 아래 내용을 추가 후
<?php for ($i = 3; $i <= 20; $i++) { echo get_editor_js('wr_'.$i);echo chk_editor_js('wr_'.$i);}?>
write.skin.php 상단에 아래 내용을 추가하면 여분필드 3 ~ 20 까지 종류 varchar(255) 를 text 로 변경됨.
<?php
if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가
if($is_admin == 'super') include_once($_SERVER['DOCUMENT_ROOT'].'/common.php');
if ($is_admin == 'super') {
for ($i = 3; $i <= 20; $i++) {
$col = "wr_{$i}";
$result = sql_query("SELECT COLUMN_TYPE FROM information_schema.COLUMNS WHERE TABLE_NAME='{$write_table}' AND COLUMN_NAME='{$col}' AND TABLE_SCHEMA='".G5_MYSQL_DB."'");
$row = mysqli_fetch_assoc($result);
if ($row['COLUMN_TYPE'] == 'varchar(255)') {
sql_query("ALTER TABLE `{$write_table}` CHANGE `{$col}` `{$col}` TEXT NOT NULL");
echo "<script>alert('{$col} varchar(255) => TEXT')</script>";
}
}
}
!-->
혹시 넘기는 데이터가 너무 길어서 잘리는 거라면,
.htaccess 에 아래 소스를 추가해보세요.
PHP_VALUE max_input_vars 50000