GNU/skin/board/oldboy_setting/write_update.skin.php
<?php
if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가

// 1. 기본 커스텀 변수 정리 (보안을 위해 trim 처리)
$as_mid_cat       = isset($_POST['as_mid_cat']) ? trim($_POST['as_mid_cat']) : "";
$as_sub_cat       = isset($_POST['as_sub_cat']) ? trim($_POST['as_sub_cat']) : "";
$x2_tag           = isset($_POST['x2_tag']) ? trim($_POST['x2_tag']) : "";
$as_extra_content = isset($_POST['as_extra_content']) ? trim($_POST['as_extra_content']) : "";

// 2. 메모 처리 (삭제 체크박스가 선택되었다면 내용을 비움)
if (isset($_POST['memo_del']) && $_POST['memo_del'] == '1') {
    $as_memo = "";
    $as_memo_del = 1;
} else {
    $as_memo = isset($_POST['as_memo']) ? trim($_POST['as_memo']) : "";
    $as_memo_del = 0;
}

// 3. 여분필드 1~20번의 제목(subj) 및 11~20번의 값(val) 정리
// (wr_1~10의 값은 그누보드 코어에서 자동으로 저장하므로 제목만 추가로 저장합니다)
$sql_extra = "";
for ($i=1; $i<=20; $i++) {
    // 제목 저장
    $v_subj = isset($_POST["wr_{$i}_subj"]) ? trim($_POST["wr_{$i}_subj"]) : "";
    $sql_extra .= ", wr_{$i}_subj = '{$v_subj}' ";

    // 11~20번 값 저장 (코어에서 지원하지 않는 범위)
    if ($i > 10) {
        $v_val = isset($_POST["wr_{$i}"]) ? trim($_POST["wr_{$i}"]) : "";
        $sql_extra .= ", wr_{$i} = '{$v_val}' ";
    }
}

// 4. 최종 DB 업데이트 실행
$sql = " update {$write_table}
            set as_mid_cat = '{$as_mid_cat}',
                as_sub_cat = '{$as_sub_cat}',
                x2_tag = '{$x2_tag}',
                as_memo = '{$as_memo}',
                as_memo_del = '{$as_memo_del}',
                as_extra_content = '{$as_extra_content}'
                {$sql_extra}
          where wr_id = '{$wr_id}' ";

sql_query($sql);
?>