write.php 인클루드시 여백, $board_skin_path/write.php인클루드시 옵션문제 > 그누4 질문답변

그누4 질문답변

그누보드4 관련 질문은 QA 로 이전됩니다. QA 그누보드4 바로가기
기존 게시물은 열람만 가능합니다.

write.php 인클루드시 여백, $board_skin_path/write.php인클루드시 옵션문제 정보

write.php 인클루드시 여백, $board_skin_path/write.php인클루드시 옵션문제

본문

방명록스킨에서 비밀글이나 html 등의 옵션 체크박스를 적용하기위해 질문을 올렸었는데
write.skin.php를 바로 인클루드 하지 말고 write.php를 인클루드하면 된다고 답변해주셔서 덕분에 옵션적용이 되었습니다.
그런데 <? include ("write.php"); ?> 이렇게 하면 체크박스는 3개 모두 보이지만 글쓰는 부분과 목록 사이에 여백이 엄청 생겨버립니다. 그래서 <? include ("$board_skin_path/write.php"); ?>로 쓰니 여백은 없지만 관리자로 로그인해도 옵션이 공지체크박스만 생기고 html과 비밀글 체크박스는 보이지 않습니다. 어떻게 해야 여백이 없이 옵션을 제대로 적용할 수 있을까요?




아래는 write.php 내용입니다.


<?
include_once("./_common.php");

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

$notice_array = explode("\n", trim($board[bo_notice]));

if ($w == "") {}
else if ($w == "u")
{
    if ($member[mb_level] < $board[bo_write_level]) {
        if ($member[mb_id])
            alert("글을 수정할 권한이 없습니다.");
        else
            alert("글을 수정할 권한이 없습니다.\\n\\n회원이시라면 로그인 후 이용해 보십시오.", "./login.php?$qstr&url=".urlencode("$_SERVER[PHP_SELF]?bo_table=$bo_table"));
    }

    $len = strlen($write[wr_reply]);
    if ($len < 0) $len = 0;
    $reply = substr($write[wr_reply], 0, $len);

    // 원글만 구한다.
    $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답변글이 있는 원글은 수정할 수 없습니다.");

    // 코멘트 달린 원글의 수정 여부
    $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 ($row[cnt] >= $board[bo_count_modify] && !$is_admin)
        alert("이 글과 관련된 코멘트가 존재하므로 수정 할 수 없습니다.\\n\\n코멘트가 {$board[bo_count_delete]}건 이상 달린 원글은 수정할 수 없습니다.");

    $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[PHP_SELF]?bo_table=$bo_table"));
    }

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

    //if (preg_match("/[^0-9]{0,1}{$wr_id}[\r]{0,1}/",$board[bo_notice]))
    if (in_array((int)$wr_id, $notice_array))
        alert("공지에는 답변 할 수 없습니다.");

    // 게시글 배열 참조
    $reply_array = &$write;

    // 최대 답변은 테이블에 잡아놓은 wr_reply 사이즈만큼만 가능합니다.
    if (strlen($reply_array[wr_reply]) == 10)
        alert("더 이상 답변하실 수 없습니다.\\n\\n답변은 10단계 까지만 가능합니다.");

    $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);

    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);

    $reply = $reply_array[wr_reply] . $reply_char;

    $title_msg = "글답변";
} else
    alert("w 값이 제대로 넘어오지 않았습니다.");


// 그룹접근 가능
if ($group[gr_use_access])
{
    if (!$member[mb_id])
        alert("접근 권한이 없습니다.\\n\\n회원이시라면 로그인 후 이용해 보십시오.", "login.php?$qstr&url=".urlencode("$_SERVER[PHP_SELF]?bo_table=$bo_table"));

    if ($is_admin == 'super' || $group[gr_admin] == $member[mb_id] || $board[bo_admin] == $member[mb_id])
        ; // 통과
    else {
        // 그룹접근
        $sql = " select gr_id from $g4[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궁금하신 사항은 관리자에게 문의 바랍니다.");
    }
}

$g4[title] = "$group[gr_subject] > $board[bo_subject] > " . $title_msg;

if (($w == "u" || $w == "r") && !$write[wr_id])
    alert("글이 존재하지 않습니다.\\n\\n삭제되었거나 이동된 경우입니다.", "./");

$is_notice = false;
if ($is_admin && $w != "r")
{
    $is_notice = true;

    if ($w == "u")
    {
        // 답변 수정시 공지 체크 없음
        if ($write[wr_reply])
            $is_notice = false;
        else
        {
            $notice_checked = "";
            //if (preg_match("/^".$wr_id."/m", trim($board[bo_notice])))
            //if (preg_match("/[^0-9]{0,1}{$wr_id}[\r]{0,1}/",$board[bo_notice]))
            if (in_array((int)$wr_id, $notice_array))
                $notice_checked = "checked";
        }
    }
}

$is_name = false;
$is_password = false;
$is_email = false;
if (!$member[mb_id] || ($is_admin && $w == 'u' && $member[mb_id] != $write[mb_id])) {
    $is_name = true;
    $is_password = true;
    $is_email = true;
    $is_homepage = true;
}

if ($w == "" || $w == "r") {
    if ($member[mb_id]) {
        $name = get_text(cut_str($write[wr_name],20));
        $email = $member[mb_email];
        $homepage = get_text($member[mb_homepage]);
    }
}

if ($w == "")
    $password_required = "required";
else if ($w == "u") {
    $password_required = "";

    if (!$is_admin) {
        if (!($member[mb_id] && $member[mb_id] == $write[mb_id]))
            if (sql_password($wr_password) != $write[wr_password])
                alert("패스워드가 틀립니다.");
    }

    $name = get_text(cut_str($write[wr_name],20));
    $email = $write[wr_email];
    $homepage = get_text($write[wr_homepage]);
} else if ($w == "r") {
$password_required = "required";
}

$subject = preg_replace("/\"/", "&#034;", get_text(cut_str($write[wr_subject], 255), 0));
if ($w == "")
    $content = $board[bo_insert_content];
else if ($w == "r") {
    if (!$write[wr_html]) {
        $content = "\n\n\n>"
                //. "\n> $write[wr_datetime], \"$write[wr_name]\"님이 쓰신 글입니다. ↓"
                . "\n>"
                . "\n> " . preg_replace("/\n/", "\n> ", get_text($write[wr_content], 0))
                . "\n>"
                . "\n";

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

// 글자수 제한 설정값
if ($is_admin)
{
    $write_min = $write_max = 0;
}
else
{
    $write_min = (int)$board[bo_write_min];
    $write_max = (int)$board[bo_write_max];
}

// 자동등록방지
include_once ("./norobot.inc.php");

include_once ("$board_skin_path/write.skin.php");

if (!$member[mb_id])
    echo "<script language='javascript' src='$g4[path]/js/md5.js'></script>\n";

// 필터
echo "<script language='javascript'> var g4_cf_filter = '$config[cf_filter]'; </script>\n";
echo "<script language='javascript' src='$g4[path]/js/filter.js'></script>\n";
?>
  • 복사

댓글 전체

여백생기는 것은 소스보기해서 html태그를 보면 원인을 알수 있을테지만...
첨부화일도 없는 저런 간단한 입력폼이라면
그냥 폼을 단순 디자인해서 삽입하는 것이 좋을 것 같네요
그렇군요ㅠㅠ.. 말씀대로 html태그를 보니까 스크롤바 모양을 바꾸기 위해서 게시판 마다 불러온 하단파일이 문제였던 것 같습니다. 단순 디자인하니 왠일인지 수정할 때 체크가 초기화 되버려서 write.php 파일을 포기하고 싶지 않은데 아직은 방법이 안보이네요~. 언젠가 하다보면 짠 하고 떠오르겠죠. 감사합니다^^
© SIRSOFT
현재 페이지 제일 처음으로