여분필드 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 도 만들어서

Copy
<?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 까지가 모두 에디터입니다.

이렇게요.

1966463495_1754494437.3542.png

wr_10 까지는 태그가 들어간 텍스트도 잘 저장되는데 wr_11부터 20까지는 단순 텍스트만 저장되고 태그가 들어간 걸 붙여넣기 하면 저장도 되지 않습니다.

뭐가 문젠지 도저히 모르겠습니다..

답변 5개

혹시 넘기는 데이터가 너무 길어서 잘리는 거라면,

.htaccess 에 아래 소스를 추가해보세요.
PHP_VALUE max_input_vars 50000

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

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 로 변경됨.

Copy
<?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>";
        }
    }
}
로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

echo get_editor_js("wr_{$i}"); <==이게 for문으로 i 값이 10 까지만 적용되니  10번 이후는 안되는 것입니다

 for ($i = 3; $i <= 20; $i++) {  <==이렇게 하세요

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

말씀주신 내용 역시 이미 write.skin에 추가되어 있습니다.

Copy
<?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 는 빼고

Copy
<?php

            for ($i = 3; $i <= 10; $i++) {

                echo get_editor_js("wr_{$i}");

            }

            ?>

이렇게 들어가있는 상태입니다.

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

<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

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

말씀주신 내용 역시 이미 write.skin에 추가되어 있습니다.

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인
🐛 버그신고