테스트 사이트 - 개발 중인 베타 버전입니다

여분필드 추가부분질문좀드리겠습니다. 채택완료

코딩초보1 6년 전 조회 4,132

http://gnustudy.com/bbs/board.php?bo_table=skin_board&wr_id=76&page=1

 

여분필드 문제없이 잘 추가했는데요

문제는 다른게시판 글쓸시 아예 리스트에 글이안올라옵니다

 

 

bbs/write_update.php 

여기부분이 문제인거같은데요  딱히 건드리부분이없는데 또 원본소스를 넣으면 또 글잘써집니다 ㅠ

 

</p>

<p><?php

include_once('./_common.php');

include_once(G5_EDITOR_LIB);

include_once(G5_CAPTCHA_PATH.'/captcha.lib.php');</p>

<p>if (!$board['bo_table']) {

    alert('존재하지 않는 게시판입니다.', G5_URL);

}</p>

<p>if (!$bo_table) {

    alert("bo_table 값이 넘어오지 않았습니다.\\nwrite.php?bo_table=code 와 같은 방식으로 넘겨 주세요.", G5_URL);

}</p>

<p>check_device($board['bo_device']);</p>

<p>$notice_array = explode(',', trim($board['bo_notice']));</p>

<p>if (!($w == '' || $w == 'u' || $w == 'r')) {

    alert('w 값이 제대로 넘어오지 않았습니다.');

}</p>

<p>if ($w == 'u' || $w == 'r') {

    if ($write['wr_id']) {

        // 가변 변수로 $wr_1 .. $wr_10 까지 만든다.

        for ($i=1; $i<=20; $i++) {

            $vvar = "wr_".$i;

            $$vvar = $write['wr_'.$i];

        }

    } else {

        alert("글이 존재하지 않습니다.\\n삭제되었거나 이동된 경우입니다.", G5_URL);

    }

}</p>

<p>if ($w == '') {

    if ($wr_id) {

        alert('글쓰기에는 \$wr_id 값을 사용하지 않습니다.', G5_BBS_URL.'/board.php?bo_table='.$bo_table);

    }</p>

<p>    if ($member['mb_level'] < $board['bo_write_level']) {

        if ($member['mb_id']) {

            alert('글을 쓸 권한이 없습니다.');

        } else {

            alert("글을 쓸 권한이 없습니다.\\n회원이시라면 로그인 후 이용해 보십시오.", './login.php?'.$qstr.'&url='.urlencode($_SERVER['SCRIPT_NAME'].'?bo_table='.$bo_table));

        }

    }</p>

<p>    // 음수도 true 인것을 왜 이제야 알았을까?

    if ($is_member) {

        $tmp_point = ($member['mb_point'] > 0) ? $member['mb_point'] : 0;

        if ($tmp_point + $board['bo_write_point'] < 0 && !$is_admin) {

            alert('보유하신 포인트('.number_format($member['mb_point']).')가 없거나 모자라서 글쓰기('.number_format($board['bo_write_point']).')가 불가합니다.\\n\\n포인트를 적립하신 후 다시 글쓰기 해 주십시오.');

        }

    }</p>

<p>    $title_msg = '글쓰기';

} else if ($w == 'u') {

    // 김선용 1.00 : 글쓰기 권한과 수정은 별도로 처리되어야 함

    //if ($member['mb_level'] < $board['bo_write_level']) {

    if($member['mb_id'] && $write['mb_id'] === $member['mb_id']) {

        ;

    } else if ($member['mb_level'] < $board['bo_write_level']) {

        if ($member['mb_id']) {

            alert('글을 수정할 권한이 없습니다.');

        } else {

            alert('글을 수정할 권한이 없습니다.\\n\\n회원이시라면 로그인 후 이용해 보십시오.', './login.php?'.$qstr.'&url='.urlencode($_SERVER['SCRIPT_NAME'].'?bo_table='.$bo_table));

        }

    }</p>

<p>    $len = strlen($write['wr_reply']);

    if ($len < 0) $len = 0;

    $reply = substr($write['wr_reply'], 0, $len);</p>

<p>    // 원글만 구한다.

    $sql = " select count(*) as cnt from {$write_table}

                where wr_reply like '{$reply}%'

                and wr_id <> '{$write['wr_id']}'

                and wr_num = '{$write['wr_num']}'

                and wr_is_comment = 0 ";

    $row = sql_fetch($sql);

    if ($row['cnt'] && !$is_admin)

        alert('이 글과 관련된 답변글이 존재하므로 수정 할 수 없습니다.\\n\\n답변글이 있는 원글은 수정할 수 없습니다.');</p>

<p>    // 코멘트 달린 원글의 수정 여부

    $sql = " select count(*) as cnt from {$write_table}

                where wr_parent = '{$wr_id}'

                and mb_id <> '{$member['mb_id']}'

                and wr_is_comment = 1 ";

    $row = sql_fetch($sql);

    if ($board['bo_count_modify'] && $row['cnt'] >= $board['bo_count_modify'] && !$is_admin)

        alert('이 글과 관련된 댓글이 존재하므로 수정 할 수 없습니다.\\n\\n댓글이 '.$board['bo_count_modify'].'건 이상 달린 원글은 수정할 수 없습니다.');</p>

<p>    $title_msg = '글수정';

} else if ($w == 'r') {

    if ($member['mb_level'] < $board['bo_reply_level']) {

        if ($member['mb_id'])

            alert('글을 답변할 권한이 없습니다.');

        else

            alert('답변글을 작성할 권한이 없습니다.\\n\\n회원이시라면 로그인 후 이용해 보십시오.', './login.php?'.$qstr.'&url='.urlencode($_SERVER['SCRIPT_NAME'].'?bo_table='.$bo_table));

    }</p>

<p>    $tmp_point = isset($member['mb_point']) ? $member['mb_point'] : 0;

    if ($tmp_point + $board['bo_write_point'] < 0 && !$is_admin)

        alert('보유하신 포인트('.number_format($member['mb_point']).')가 없거나 모자라서 글답변('.number_format($board['bo_comment_point']).')가 불가합니다.\\n\\n포인트를 적립하신 후 다시 글답변 해 주십시오.');</p>

<p>    //if (preg_match("/[^0-9]{0,1}{$wr_id}[\r]{0,1}/",$board['bo_notice']))

    if (in_array((int)$wr_id, $notice_array))

        alert('공지에는 답변 할 수 없습니다.');</p>

<p>    //----------

    // 4.06.13 : 비밀글을 타인이 열람할 수 있는 오류 수정 (헐랭이, 플록님께서 알려주셨습니다.)

    // 코멘트에는 원글의 답변이 불가하므로

    if ($write['wr_is_comment'])

        alert('정상적인 접근이 아닙니다.');</p>

<p>    // 비밀글인지를 검사

    if (strstr($write['wr_option'], 'secret')) {

        if ($write['mb_id']) {

            // 회원의 경우는 해당 글쓴 회원 및 관리자

            if (!($write['mb_id'] === $member['mb_id'] || $is_admin))

                alert('비밀글에는 자신 또는 관리자만 답변이 가능합니다.');

        } else {

            // 비회원의 경우는 비밀글에 답변이 불가함

            if (!$is_admin)

                alert('비회원의 비밀글에는 답변이 불가합니다.');

        }

    }

    //----------</p>

<p>    // 게시글 배열 참조

    $reply_array = &$write;</p>

<p>    // 최대 답변은 테이블에 잡아놓은 wr_reply 사이즈만큼만 가능합니다.

    if (strlen($reply_array['wr_reply']) == 10)

        alert('더 이상 답변하실 수 없습니다.\\n\\n답변은 10단계 까지만 가능합니다.');</p>

<p>    $reply_len = strlen($reply_array['wr_reply']) + 1;

    if ($board['bo_reply_order']) {

        $begin_reply_char = 'A';

        $end_reply_char = 'Z';

        $reply_number = +1;

        $sql = " select MAX(SUBSTRING(wr_reply, {$reply_len}, 1)) as reply from {$write_table} where wr_num = '{$reply_array['wr_num']}' and SUBSTRING(wr_reply, {$reply_len}, 1) <> '' ";

    } else {

        $begin_reply_char = 'Z';

        $end_reply_char = 'A';

        $reply_number = -1;

        $sql = " select MIN(SUBSTRING(wr_reply, {$reply_len}, 1)) as reply from {$write_table} where wr_num = '{$reply_array['wr_num']}' and SUBSTRING(wr_reply, {$reply_len}, 1) <> '' ";

    }

    if ($reply_array['wr_reply']) $sql .= " and wr_reply like '{$reply_array['wr_reply']}%' ";

    $row = sql_fetch($sql);</p>

<p>    if (!$row['reply'])

        $reply_char = $begin_reply_char;

    else if ($row['reply'] == $end_reply_char) // A~Z은 26 입니다.

        alert('더 이상 답변하실 수 없습니다.\\n\\n답변은 26개 까지만 가능합니다.');

    else

        $reply_char = chr(ord($row['reply']) + $reply_number);</p>

<p>    $reply = $reply_array['wr_reply'] . $reply_char;</p>

<p>    $title_msg = '글답변';</p>

<p>    $write['wr_subject'] = 'Re: '.$write['wr_subject'];

}</p>

<p>// 그룹접근 가능

if (!empty($group['gr_use_access'])) {

    if ($is_guest) {

        alert("접근 권한이 없습니다.\\n\\n회원이시라면 로그인 후 이용해 보십시오.", 'login.php?'.$qstr.'&url='.urlencode($_SERVER['SCRIPT_NAME'].'?bo_table='.$bo_table));

    }</p>

<p>    if ($is_admin == 'super' || $group['gr_admin'] === $member['mb_id'] || $board['bo_admin'] === $member['mb_id']) {

        ; // 통과

    } else {

        // 그룹접근

        $sql = " select gr_id from {$g5['group_member_table']} where gr_id = '{$board['gr_id']}' and mb_id = '{$member['mb_id']}' ";

        $row = sql_fetch($sql);

        if (!$row['gr_id'])

            alert('접근 권한이 없으므로 글쓰기가 불가합니다.\\n\\n궁금하신 사항은 관리자에게 문의 바랍니다.');

    }

}</p>

<p>// 본인확인을 사용한다면

if ($config['cf_cert_use'] && !$is_admin) {

    // 인증된 회원만 가능

    if ($board['bo_use_cert'] != '' && $is_guest) {

        alert('이 게시판은 본인확인 하신 회원님만 글쓰기가 가능합니다.\\n\\n회원이시라면 로그인 후 이용해 보십시오.', 'login.php?'.$qstr.'&url='.urlencode($_SERVER['SCRIPT_NAME'].'?bo_table='.$bo_table));

    }</p>

<p>    if ($board['bo_use_cert'] == 'cert' && !$member['mb_certify']) {

        alert('이 게시판은 본인확인 하신 회원님만 글쓰기가 가능합니다.\\n\\n회원정보 수정에서 본인확인을 해주시기 바랍니다.', G5_URL);

    }</p>

<p>    if ($board['bo_use_cert'] == 'adult' && !$member['mb_adult']) {

        alert('이 게시판은 본인확인으로 성인인증 된 회원님만 글쓰기가 가능합니다.\\n\\n성인인데 글쓰기가 안된다면 회원정보 수정에서 본인확인을 다시 해주시기 바랍니다.', G5_URL);

    }</p>

<p>    if ($board['bo_use_cert'] == 'hp-cert' && $member['mb_certify'] != 'hp') {

        alert('이 게시판은 휴대폰 본인확인 하신 회원님만 글읽기가 가능합니다.\\n\\n회원정보 수정에서 휴대폰 본인확인을 해주시기 바랍니다.', G5_URL);

    }</p>

<p>    if ($board['bo_use_cert'] == 'hp-adult' && (!$member['mb_adult'] || $member['mb_certify'] != 'hp')) {

        alert('이 게시판은 휴대폰 본인확인으로 성인인증 된 회원님만 글읽기가 가능합니다.\\n\\n현재 성인인데 글읽기가 안된다면 회원정보 수정에서 휴대폰 본인확인을 다시 해주시기 바랍니다.', G5_URL);

    }

}</p>

<p>// 글자수 제한 설정값

if ($is_admin || $board['bo_use_dhtml_editor'])

{

    $write_min = $write_max = 0;

}

else

{

    $write_min = (int)$board['bo_write_min'];

    $write_max = (int)$board['bo_write_max'];

}</p>

<p>$g5['title'] = ((G5_IS_MOBILE && $board['bo_mobile_subject']) ? $board['bo_mobile_subject'] : $board['bo_subject']).' '.$title_msg;</p>

<p>$is_notice = false;

$notice_checked = '';

if ($is_admin && $w != 'r') {

    $is_notice = true;</p>

<p>    if ($w == 'u') {

        // 답변 수정시 공지 체크 없음

        if ($write['wr_reply']) {

            $is_notice = false;

        } else {

            if (in_array((int)$wr_id, $notice_array)) {

                $notice_checked = 'checked';

            }

        }

    }

}</p>

<p>$is_html = false;

if ($member['mb_level'] >= $board['bo_html_level'])

    $is_html = true;</p>

<p>$is_secret = $board['bo_use_secret'];</p>

<p>$is_mail = false;

if ($config['cf_email_use'] && $board['bo_use_email'])

    $is_mail = true;</p>

<p>$recv_email_checked = '';

if ($w == '' || strstr($write['wr_option'], 'mail'))

    $recv_email_checked = 'checked';</p>

<p>$is_name     = false;

$is_password = false;

$is_email    = false;

$is_homepage = false;

if ($is_guest || ($is_admin && $w == 'u' && $member['mb_id'] !== $write['mb_id'])) {

    $is_name = true;

    $is_password = true;

    $is_email = true;

    $is_homepage = true;

}</p>

<p>$is_category = false;

$category_option = '';

if ($board['bo_use_category']) {

    $ca_name = "";

    if (isset($write['ca_name']))

        $ca_name = $write['ca_name'];

    $category_option = get_category_option($bo_table, $ca_name);

    $is_category = true;

}</p>

<p>$is_link = false;

if ($member['mb_level'] >= $board['bo_link_level']) {

    $is_link = true;

}</p>

<p>$is_file = false;

if ($member['mb_level'] >= $board['bo_upload_level']) {

    $is_file = true;

}</p>

<p>$is_file_content = false;

if ($board['bo_use_file_content']) {

    $is_file_content = true;

}</p>

<p>$file_count = (int)$board['bo_upload_count'];</p>

<p>$name     = "";

$email    = "";

$homepage = "";

if ($w == "" || $w == "r") {

    if ($is_member) {

        if (isset($write['wr_name'])) {

            $name = get_text(cut_str(stripslashes($write['wr_name']),20));

        }

        $email = get_email_address($member['mb_email']);

        $homepage = get_text(stripslashes($member['mb_homepage']));

    }

}</p>

<p>$html_checked   = "";

$html_value     = "";

$secret_checked = "";</p>

<p>if ($w == '') {

    $password_required = 'required';

} else if ($w == 'u') {

    $password_required = '';</p>

<p>    if (!$is_admin) {

        if (!($is_member && $member['mb_id'] === $write['mb_id'])) {

            if (!check_password($wr_password, $write['wr_password'])) {

                alert('비밀번호가 틀립니다.');

            }

        }

    }</p>

<p>    $name = get_text(cut_str(stripslashes($write['wr_name']),20));

    $email = get_email_address($write['wr_email']);

    $homepage = get_text(stripslashes($write['wr_homepage']));</p>

<p>    for ($i=1; $i<=G5_LINK_COUNT; $i++) {

        $write['wr_link'.$i] = get_text($write['wr_link'.$i]);

        $link[$i] = $write['wr_link'.$i];

    }</p>

<p>    if (strstr($write['wr_option'], 'html1')) {

        $html_checked = 'checked';

        $html_value = 'html1';

    } else if (strstr($write['wr_option'], 'html2')) {

        $html_checked = 'checked';

        $html_value = 'html2';

    }</p>

<p>    if (strstr($write['wr_option'], 'secret')) {

        $secret_checked = 'checked';

    }</p>

<p>    $file = get_file($bo_table, $wr_id);

    if($file_count < $file['count'])

        $file_count = $file['count'];

} else if ($w == 'r') {

    if (strstr($write['wr_option'], 'secret')) {

        $is_secret = true;

        $secret_checked = 'checked';

    }</p>

<p>    $password_required = "required";</p>

<p>    for ($i=1; $i<=G5_LINK_COUNT; $i++) {

        $write['wr_link'.$i] = get_text($write['wr_link'.$i]);

    }

}</p>

<p>set_session('ss_bo_table', $_REQUEST['bo_table']);

set_session('ss_wr_id', $_REQUEST['wr_id']);</p>

<p>$subject = "";

if (isset($write['wr_subject'])) {

    $subject = str_replace("\"", """, get_text(cut_str($write['wr_subject'], 255), 0));

}</p>

<p>$content = '';

if ($w == '') {

    $content = $board['bo_insert_content'];

} else if ($w == 'r') {

    if (!strstr($write['wr_option'], 'html')) {

        $content = "\n\n\n > "

                 ."\n > "

                 ."\n > ".str_replace("\n", "\n> ", get_text($write['wr_content'], 0))

                 ."\n > "

                 ."\n > ";</p>

<p>    }

} else {

    $content = get_text($write['wr_content'], 0);

}</p>

<p>$upload_max_filesize = number_format($board['bo_upload_size']) . ' 바이트';</p>

<p>$width = $board['bo_table_width'];

if ($width <= 100)

    $width .= '%';

else

    $width .= 'px';</p>

<p>$captcha_html = '';

$captcha_js   = '';

$is_use_captcha = ((($board['bo_use_captcha'] && $w !== 'u') || $is_guest) && !$is_admin) ? 1 : 0;</p>

<p>if ($is_use_captcha) {

    $captcha_html = captcha_html();

    $captcha_js   = chk_captcha_js();

}</p>

<p>$is_dhtml_editor = false;

$is_dhtml_editor_use = false;

$editor_content_js = '';

if(!is_mobile() || defined('G5_IS_MOBILE_DHTML_USE') && G5_IS_MOBILE_DHTML_USE)

    $is_dhtml_editor_use = true;</p>

<p>// 모바일에서는 G5_IS_MOBILE_DHTML_USE 설정에 따라 DHTML 에디터 적용

if ($config['cf_editor'] && $is_dhtml_editor_use && $board['bo_use_dhtml_editor'] && $member['mb_level'] >= $board['bo_html_level']) {

    $is_dhtml_editor = true;</p>

<p>    if ( $w == 'u' && (! $is_member || ! $is_admin || $write['mb_id'] !== $member['mb_id']) ){

        // kisa 취약점 제보 xss 필터 적용

        $content = get_text(html_purifier($write['wr_content']), 0);

    }</p>

<p>    if(is_file(G5_EDITOR_PATH.'/'.$config['cf_editor'].'/autosave.editor.js'))

        $editor_content_js = '<script src="'.G5_EDITOR_URL.'/'.$config['cf_editor'].'/autosave.editor.js"></script>'.PHP_EOL;

}

$editor_html = editor_html('wr_content', $content, $is_dhtml_editor);

$editor_js = '';

$editor_js .= get_editor_js('wr_content', $is_dhtml_editor);

$editor_js .= chk_editor_js('wr_content', $is_dhtml_editor);</p>

<p>// 임시 저장된 글 수

$autosave_count = autosave_count($member['mb_id']);</p>

<p>include_once(G5_PATH.'/head.sub.php');

@include_once ($board_skin_path.'/write.head.skin.php');

include_once('./board_head.php');</p>

<p>$action_url = https_url(G5_BBS_DIR)."/write_update.php";</p>

<p>echo '<!-- skin : '.(G5_IS_MOBILE ? $board['bo_mobile_skin'] : $board['bo_skin']).' -->';

include_once ($board_skin_path.'/write.skin.php');</p>

<p>include_once('./board_tail.php');

@include_once ($board_skin_path.'/write.tail.skin.php');

include_once(G5_PATH.'/tail.sub.php');

?></p>

<p>

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

답변 1개

채택된 답변
+20 포인트
6년 전

올려주신 코드는 write.php 파일이네요.

혹시 다른 게시판은 위 팁을 적용하기 전에 생성된 게시판인가요?

적용하기 전에 생성한 게시판은 필드가 추가되어 있지 않아서 별도로 필드를 추가하셔야합니다.

특정 게시판에서만 사용하려면 이렇게 하는 게 낫습니다.

http://gnustudy.com/bbs/board.php?bo_table=skin_board&wr_id=31

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

답변에 대한 댓글 1개

코딩초보1
6년 전
아아 넵 좋은팁 감사합니다 해결했습니다

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

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

로그인