접근 사용 제한에 의한 접근제어...? > 그누4 팁자료실

매출이 오르면 내리는 수수료! 지금 수수료센터에서 전자결제(PG)수수료 비교견적 신청해 보세요!

그누4 팁자료실

그누보드4와 관련된 팁을 여러분들과 함께 공유하세요.
나누면 즐거움이 커집니다.

접근 사용 제한에 의한 접근제어...? 정보

접근 사용 제한에 의한 접근제어...?

본문

질답게시판의 질문에 의해 위치와 약간의 수정을 해 보았습니다.
나스카님의 팁과 자유게시판의 글이 도움이 되었습니다.

http://sir.co.kr/bbs/board.php?bo_table=g4_tiptech&wr_id=1916&sca=&sfl=wr_subject&stx=group_access&sop=and

로컬에서 테스트를 해 보았으나 혹시나 모를 문제점은 댓글을 부탁드립니다.

bbs/board.php ______________________________

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

if (!$board[bo_table])
{
    if ($cwin) // 코멘트 보기
      alert_close("존재하지 않는 게시판입니다.", $g4[path]);
    else
      alert("존재하지 않는 게시판입니다.", $g4[path]);
}

if ($write[wr_is_comment])
{
    /*
    if ($cwin) // 코멘트 보기
        alert_close("코멘트는 상세보기 하실 수 없습니다.");
    else
        alert("코멘트는 상세보기 하실 수 없습니다.");
    */
    goto_url("./board.php?bo_table=$bo_table&wr_id=$write[wr_parent]#c_{$wr_id}");
}

if (!$bo_table)
{
    $msg = "bo_table 값이 넘어오지 않았습니다.\\n\\nboard.php?bo_table=code 와 같은 방식으로 넘겨 주세요.";
    if ($cwin) // 코멘트 보기
        alert_close($msg);
    else
        alert($msg);
}

// 그룹접근 사용
    if ($group[gr_use_access])
    {
        if (!$member[mb_id]) {
            $msg = "비회원은 이 게시판에 접근할 권한이 없습니다.\\n\\n회원이시라면 로그인 후 이용해 보십시오.";
            if ($cwin)
                alert_close($msg);
            else
                alert($msg, "./login.php?wr_id=$wr_id{$qstr}&url=".urlencode("./board.php?bo_table=$bo_table&wr_id=$wr_id"));
        }

        // 그룹관리자 이상이라면 통과
        if ($is_admin == "super" || $is_admin == "group")
            ;
        else
        {
            // 그룹접근
            $sql = " select count(*) as cnt
                      from $g4[group_member_table]
                      where gr_id = '$board[gr_id]' and mb_id = '$member[mb_id]' ";
            $row = sql_fetch($sql);
            if (!$row[cnt])
                alert("접근 권한이 없으므로 글읽기가 불가합니다.\\n\\n궁금하신 사항은 관리자에게 문의 바랍니다.", $g4[path]);
        }
    }


// wr_id 값이 있으면 글읽기
if ($wr_id)
{
    // 글이 없을 경우 해당 게시판 목록으로 이동
    if (!$write[wr_id])
    {
        $msg = "글이 존재하지 않습니다.\\n\\n글이 삭제되었거나 이동된 경우입니다.";
        if ($cwin)
            alert_close($msg);
        else
            alert($msg, "./board.php?bo_table=$bo_table");
    }
  /*
    // 그룹접근 사용
    if ($group[gr_use_access])
    {
        if (!$member[mb_id]) {
            $msg = "비회원은 이 게시판에 접근할 권한이 없습니다.\\n\\n회원이시라면 로그인 후 이용해 보십시오.";
            if ($cwin)
                alert_close($msg);
            else
                alert($msg, "./login.php?wr_id=$wr_id{$qstr}&url=".urlencode("./board.php?bo_table=$bo_table&wr_id=$wr_id"));
        }

        // 그룹관리자 이상이라면 통과
        if ($is_admin == "super" || $is_admin == "group")
            ;
        else
        {
            // 그룹접근
            $sql = " select count(*) as cnt
                      from $g4[group_member_table]
                      where gr_id = '$board[gr_id]' and mb_id = '$member[mb_id]' ";
            $row = sql_fetch($sql);
            if (!$row[cnt])
                alert("접근 권한이 없으므로 글읽기가 불가합니다.\\n\\n궁금하신 사항은 관리자에게 문의 바랍니다.", $g4[path]);
        }
    }
*/
    // 로그인된 회원의 권한이 설정된 읽기 권한보다 작다면
    if ($member[mb_level] < $board[bo_read_level])
    {
        if ($member[mb_id])
            //alert("글을 읽을 권한이 없습니다.");
            alert("글을 읽을 권한이 없습니다.", $g4[path]);
        else
            alert("글을 읽을 권한이 없습니다.\\n\\n회원이시라면 로그인 후 이용해 보십시오.", "./login.php?wr_id=$wr_id{$qstr}&url=".urlencode("board.php?bo_table=$bo_table&wr_id=$wr_id"));
    }

    // 자신의 글이거나 관리자라면 통과
    if (($write[mb_id] && $write[mb_id] == $member[mb_id]) || $is_admin)
        ;
    else
    {
        // 비밀글이라면
        if (strstr($write[wr_option], "secret"))
        {
            // 회원이 비밀글을 올리고 관리자가 답변글을 올렸을 경우
            // 회원이 관리자가 올린 답변글을 바로 볼 수 없던 오류를 수정
            $is_owner = false;
            if ($write[wr_reply] && $member[mb_id])
            {
                $sql = " select mb_id from $write_table
                          where wr_num = '$write[wr_num]'
                            and wr_reply = ''
                            and wr_is_comment = '0' ";
                $row = sql_fetch($sql);
                if ($row[mb_id] == $member[mb_id])
                    $is_owner = true;
            }

            $ss_name = "ss_secret_{$bo_table}_$write[wr_num]";
           
            if (!$is_owner)
            {
                //$ss_name = "ss_secret_{$bo_table}_{$wr_id}";
                // 한번 읽은 게시물의 번호는 세션에 저장되어 있고 같은 게시물을 읽을 경우는 다시 패스워드를 묻지 않습니다.
                // 이 게시물이 저장된 게시물이 아니면서 관리자가 아니라면
                //if ("$bo_table|$write[wr_num]" != get_session("ss_secret"))
                if (!get_session($ss_name))
                    goto_url("./password.php?w=s&bo_table=$bo_table&wr_id=$wr_id{$qstr}");
            }

            set_session($ss_name, TRUE);
        }
    }

    // 한번 읽은글은 브라우저를 닫기전까지는 카운트를 증가시키지 않음
    $ss_name = "ss_view_{$bo_table}_{$wr_id}";
    if (!get_session($ss_name))
    {
        sql_query(" update $write_table set wr_hit = wr_hit + 1 where wr_id = '$wr_id' ");

        // 자신의 글이면 통과
        if ($write[mb_id] && $write[mb_id] == $member[mb_id])
            ;
        else
        {
            // 회원이상 글읽기가 가능하다면
            if ($board[bo_read_level] > 1) {
                if ($member[mb_point] + $board[bo_read_point] < 0)
                    alert("보유하신 포인트(".number_format($member[mb_point]).")가 없거나 모자라서 글읽기(".number_format($board[bo_read_point]).")가 불가합니다.\\n\\n포인트를 모으신 후 다시 글읽기 해 주십시오.");

                insert_point($member[mb_id], $board[bo_read_point], "$board[bo_subject] $wr_id 글읽기", $bo_table, $wr_id, '읽기');
            }
        }

        set_session($ss_name, TRUE);
    }

    $g4[title] = "$group[gr_subject] > $board[bo_subject] > " . strip_tags(conv_subject($write[wr_subject], 255));
}
else
{
    if ($member[mb_level] < $board[bo_list_level])
    {
        if ($member[mb_id])
            alert("목록을 볼 권한이 없습니다.");
        else
            alert("목록을 볼 권한이 없습니다.\\n\\n회원이시라면 로그인 후 이용해 보십시오.", "./login.php?wr_id=$wr_id{$qstr}&url=".urlencode("board.php?bo_table=$bo_table&wr_id=$wr_id"));
    }

    if (!$page) $page = 1;

    $g4[title] = "$group[gr_subject] > $board[bo_subject] $page 페이지";
}

include_once("$g4[path]/head.sub.php");

$width = $board[bo_table_width];
if ($width <= 100) $width .= '%';

// IP보이기 사용 여부
$ip = "";
$is_ip_view = $board[bo_use_ip_view];
if ($is_admin) {
    $is_ip_view = true;
    $ip = $write[wr_ip];
} else // 관리자가 아니라면 IP 주소를 감춘후 보여줍니다.
    $ip = preg_replace("/([0-9]+).([0-9]+).([0-9]+).([0-9]+)/", "\\1.♡.\\3.\\4", $write[wr_ip]);

// 분류 사용
$is_category = false;
$category_name = "";
if ($board[bo_use_category]) {
    $is_category = true;
    $category_name = $write[ca_name]; // 분류명
}

// 추천 사용
$is_good = false;
if ($board[bo_use_good])
    $is_good = true;

// 비추천 사용
$is_nogood = false;
if ($board[bo_use_nogood])
    $is_nogood = true;

$admin_href = "";
// 최고관리자 또는 그룹관리자라면
if ($member[mb_id] && ($is_admin == 'super' || $group[gr_admin] == $member[mb_id]))
    $admin_href = "$g4[admin_path]/board_form.php?w=u&bo_table=$bo_table";

if (!($board[bo_use_comment] && $cwin))
    include_once("./board_head.php");

echo "<script language=\"javascript\" src=\"$g4[path]/js/sideview.js\"></script>\n";

if (!($board[bo_use_comment] && $cwin)) {
    // 게시물 아이디가 있다면 게시물 보기를 INCLUDE
    if ($wr_id)
        include_once("./view.php");

    // 전체목록보이기 사용이 "예" 또는 wr_id 값이 없다면 목록을 보임
    //if ($board[bo_use_list_view] || empty($wr_id))
    if ($member[mb_level] >= $board[bo_list_level] && $board[bo_use_list_view] || empty($wr_id))
        include_once ("./list.php");

    include_once("./board_tail.php");
}
else
    include_once("./view_comment.php");

echo "\n<!-- 사용스킨 : $board[bo_skin] -->\n";

include_once("$g4[path]/tail.sub.php");
?>


bbs/group.php ______________________

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

if (!$board[bo_table])
{
    if ($cwin) // 코멘트 보기
      alert_close("존재하지 않는 게시판입니다.", $g4[path]);
    else
      alert("존재하지 않는 게시판입니다.", $g4[path]);
}

if ($write[wr_is_comment])
{
    /*
    if ($cwin) // 코멘트 보기
        alert_close("코멘트는 상세보기 하실 수 없습니다.");
    else
        alert("코멘트는 상세보기 하실 수 없습니다.");
    */
    goto_url("./board.php?bo_table=$bo_table&wr_id=$write[wr_parent]#c_{$wr_id}");
}

if (!$bo_table)
{
    $msg = "bo_table 값이 넘어오지 않았습니다.\\n\\nboard.php?bo_table=code 와 같은 방식으로 넘겨 주세요.";
    if ($cwin) // 코멘트 보기
        alert_close($msg);
    else
        alert($msg);
}

// 그룹접근 사용
    if ($group[gr_use_access])
    {
        if (!$member[mb_id]) {
            $msg = "비회원은 이 게시판에 접근할 권한이 없습니다.\\n\\n회원이시라면 로그인 후 이용해 보십시오.";
            if ($cwin)
                alert_close($msg);
            else
                alert($msg, "./login.php?wr_id=$wr_id{$qstr}&url=".urlencode("./board.php?bo_table=$bo_table&wr_id=$wr_id"));
        }

        // 그룹관리자 이상이라면 통과
        if ($is_admin == "super" || $is_admin == "group")
            ;
        else
        {
            // 그룹접근
            $sql = " select count(*) as cnt
                      from $g4[group_member_table]
                      where gr_id = '$board[gr_id]' and mb_id = '$member[mb_id]' ";
            $row = sql_fetch($sql);
            if (!$row[cnt])
                alert("접근 권한이 없으므로 글읽기가 불가합니다.\\n\\n궁금하신 사항은 관리자에게 문의 바랍니다.", $g4[path]);
        }
    }


// wr_id 값이 있으면 글읽기
if ($wr_id)
{
    // 글이 없을 경우 해당 게시판 목록으로 이동
    if (!$write[wr_id])
    {
        $msg = "글이 존재하지 않습니다.\\n\\n글이 삭제되었거나 이동된 경우입니다.";
        if ($cwin)
            alert_close($msg);
        else
            alert($msg, "./board.php?bo_table=$bo_table");
    }
  /*
    // 그룹접근 사용
    if ($group[gr_use_access])
    {
        if (!$member[mb_id]) {
            $msg = "비회원은 이 게시판에 접근할 권한이 없습니다.\\n\\n회원이시라면 로그인 후 이용해 보십시오.";
            if ($cwin)
                alert_close($msg);
            else
                alert($msg, "./login.php?wr_id=$wr_id{$qstr}&url=".urlencode("./board.php?bo_table=$bo_table&wr_id=$wr_id"));
        }

        // 그룹관리자 이상이라면 통과
        if ($is_admin == "super" || $is_admin == "group")
            ;
        else
        {
            // 그룹접근
            $sql = " select count(*) as cnt
                      from $g4[group_member_table]
                      where gr_id = '$board[gr_id]' and mb_id = '$member[mb_id]' ";
            $row = sql_fetch($sql);
            if (!$row[cnt])
                alert("접근 권한이 없으므로 글읽기가 불가합니다.\\n\\n궁금하신 사항은 관리자에게 문의 바랍니다.", $g4[path]);
        }
    }
*/
    // 로그인된 회원의 권한이 설정된 읽기 권한보다 작다면
    if ($member[mb_level] < $board[bo_read_level])
    {
        if ($member[mb_id])
            //alert("글을 읽을 권한이 없습니다.");
            alert("글을 읽을 권한이 없습니다.", $g4[path]);
        else
            alert("글을 읽을 권한이 없습니다.\\n\\n회원이시라면 로그인 후 이용해 보십시오.", "./login.php?wr_id=$wr_id{$qstr}&url=".urlencode("board.php?bo_table=$bo_table&wr_id=$wr_id"));
    }

    // 자신의 글이거나 관리자라면 통과
    if (($write[mb_id] && $write[mb_id] == $member[mb_id]) || $is_admin)
        ;
    else
    {
        // 비밀글이라면
        if (strstr($write[wr_option], "secret"))
        {
            // 회원이 비밀글을 올리고 관리자가 답변글을 올렸을 경우
            // 회원이 관리자가 올린 답변글을 바로 볼 수 없던 오류를 수정
            $is_owner = false;
            if ($write[wr_reply] && $member[mb_id])
            {
                $sql = " select mb_id from $write_table
                          where wr_num = '$write[wr_num]'
                            and wr_reply = ''
                            and wr_is_comment = '0' ";
                $row = sql_fetch($sql);
                if ($row[mb_id] == $member[mb_id])
                    $is_owner = true;
            }

            $ss_name = "ss_secret_{$bo_table}_$write[wr_num]";
           
            if (!$is_owner)
            {
                //$ss_name = "ss_secret_{$bo_table}_{$wr_id}";
                // 한번 읽은 게시물의 번호는 세션에 저장되어 있고 같은 게시물을 읽을 경우는 다시 패스워드를 묻지 않습니다.
                // 이 게시물이 저장된 게시물이 아니면서 관리자가 아니라면
                //if ("$bo_table|$write[wr_num]" != get_session("ss_secret"))
                if (!get_session($ss_name))
                    goto_url("./password.php?w=s&bo_table=$bo_table&wr_id=$wr_id{$qstr}");
            }

            set_session($ss_name, TRUE);
        }
    }

    // 한번 읽은글은 브라우저를 닫기전까지는 카운트를 증가시키지 않음
    $ss_name = "ss_view_{$bo_table}_{$wr_id}";
    if (!get_session($ss_name))
    {
        sql_query(" update $write_table set wr_hit = wr_hit + 1 where wr_id = '$wr_id' ");

        // 자신의 글이면 통과
        if ($write[mb_id] && $write[mb_id] == $member[mb_id])
            ;
        else
        {
            // 회원이상 글읽기가 가능하다면
            if ($board[bo_read_level] > 1) {
                if ($member[mb_point] + $board[bo_read_point] < 0)
                    alert("보유하신 포인트(".number_format($member[mb_point]).")가 없거나 모자라서 글읽기(".number_format($board[bo_read_point]).")가 불가합니다.\\n\\n포인트를 모으신 후 다시 글읽기 해 주십시오.");

                insert_point($member[mb_id], $board[bo_read_point], "$board[bo_subject] $wr_id 글읽기", $bo_table, $wr_id, '읽기');
            }
        }

        set_session($ss_name, TRUE);
    }

    $g4[title] = "$group[gr_subject] > $board[bo_subject] > " . strip_tags(conv_subject($write[wr_subject], 255));
}
else
{
    if ($member[mb_level] < $board[bo_list_level])
    {
        if ($member[mb_id])
            alert("목록을 볼 권한이 없습니다.");
        else
            alert("목록을 볼 권한이 없습니다.\\n\\n회원이시라면 로그인 후 이용해 보십시오.", "./login.php?wr_id=$wr_id{$qstr}&url=".urlencode("board.php?bo_table=$bo_table&wr_id=$wr_id"));
    }

    if (!$page) $page = 1;

    $g4[title] = "$group[gr_subject] > $board[bo_subject] $page 페이지";
}

include_once("$g4[path]/head.sub.php");

$width = $board[bo_table_width];
if ($width <= 100) $width .= '%';

// IP보이기 사용 여부
$ip = "";
$is_ip_view = $board[bo_use_ip_view];
if ($is_admin) {
    $is_ip_view = true;
    $ip = $write[wr_ip];
} else // 관리자가 아니라면 IP 주소를 감춘후 보여줍니다.
    $ip = preg_replace("/([0-9]+).([0-9]+).([0-9]+).([0-9]+)/", "\\1.♡.\\3.\\4", $write[wr_ip]);

// 분류 사용
$is_category = false;
$category_name = "";
if ($board[bo_use_category]) {
    $is_category = true;
    $category_name = $write[ca_name]; // 분류명
}

// 추천 사용
$is_good = false;
if ($board[bo_use_good])
    $is_good = true;

// 비추천 사용
$is_nogood = false;
if ($board[bo_use_nogood])
    $is_nogood = true;

$admin_href = "";
// 최고관리자 또는 그룹관리자라면
if ($member[mb_id] && ($is_admin == 'super' || $group[gr_admin] == $member[mb_id]))
    $admin_href = "$g4[admin_path]/board_form.php?w=u&bo_table=$bo_table";

if (!($board[bo_use_comment] && $cwin))
    include_once("./board_head.php");

echo "<script language=\"javascript\" src=\"$g4[path]/js/sideview.js\"></script>\n";

if (!($board[bo_use_comment] && $cwin)) {
    // 게시물 아이디가 있다면 게시물 보기를 INCLUDE
    if ($wr_id)
        include_once("./view.php");

    // 전체목록보이기 사용이 "예" 또는 wr_id 값이 없다면 목록을 보임
    //if ($board[bo_use_list_view] || empty($wr_id))
    if ($member[mb_level] >= $board[bo_list_level] && $board[bo_use_list_view] || empty($wr_id))
        include_once ("./list.php");

    include_once("./board_tail.php");
}
else
    include_once("./view_comment.php");

echo "\n<!-- 사용스킨 : $board[bo_skin] -->\n";

include_once("$g4[path]/tail.sub.php");
?>
추천
1

댓글 1개

-. g4 (4.09.01) 버전을 기준으로 사용중인 /bbs/board.php의 수정된 전문


<?
include_once("./_common.php");
$mb=get_member(mb_id);

// $config[cf_3] = 기본환경설정의 여유필드3번(특정게시판으로 사용할 테이블명 기재)
// 접근 권한 검사(내 스타일) & 회원환경설정의 여분필드 10번 ($member[mb_10]) 활용 (차단해제 요청게시판으로 이동시키기)
if ($member[mb_id] && ($member[mb_10] == "1차차단")) {
    alert("$member[mb_nick] 님은 게시물 목록 및 내용을 열람하실 수 없습니다.\\n\\n\\정상적인 이용에 대해 문의하시려면,\\n\\n\\자동으로 이동되는 게시판에 차단해제요청에 관한\\n\\n\\자세한 내용을 작성해 주시기 바랍니다.\\n\\n\\단, 차단기간동안 무분별한 게시물을 작성할 경우,\\n\\n\\게시판 자체에 영구차단됨을 명심하시기 바랍니다.", "$g4[bbs_path]/write.php?bo_table=$config[cf_3]");
}
// 차단해제요청 기능을 담당할 게시판은, $board[bo_table](좀더 명확한 기입)이거나, $bo_table을 사용해도 동일한 효과.
else if (($bo_table == "$config[cf_3]") && !$is_admin && (($member[mb_10] != "1차차단") || ($member[mb_9] != "2차차단"))) { alert("비회원이거나 일반회원은 접근하실 수 없습니다.\\n\\n\\접근할 수 없는 상황이 좋은겁니다*^^*","$g4[path]"); }
else if ($member[mb_id] && ($member[mb_9] == "2차차단")) {
alert("2차차단 대상회원은 게시판을 이용할 수 없습니다.","$g4[path]");
}

if (!$board[bo_table])
{
    if ($cwin) // 코멘트 보기
      alert_close("존재하지 않는 게시판입니다.", $g4[path]);
    else
      alert("존재하지 않는 게시판입니다.", $g4[path]);
}

//특정그룹일 경우 접근 자체를 제어하기(by nasca. 간단한 스타일)
if ($group[gr_id] == 'coun') {
if ($member[mb_id] != "$config[cf_admin]") {
alert ("목에 O이 들어와도 공개 못합니다. 관리자가 아니라면...");
}
}

if ($write[wr_is_comment])
{
    /*
    if ($cwin) // 코멘트 보기
        alert_close("코멘트는 상세보기 하실 수 없습니다.");
    else
        alert("코멘트는 상세보기 하실 수 없습니다.");
    */
    goto_url("./board.php?bo_table=$bo_table&wr_id=$write[wr_parent]#c_{$wr_id}");
}

if (!$bo_table)
{
    $msg = "bo_table 값이 넘어오지 않았습니다.\\n\\nboard.php?bo_table=code 와 같은 방식으로 넘겨 주세요.";
    if ($cwin) // 코멘트 보기
        alert_close($msg);
    else
        alert($msg);
}

// wr_id 값이 있으면 글읽기
if ($wr_id)
{
    // 글이 없을 경우 해당 게시판 목록으로 이동
    if (!$write[wr_id])
    {
        $msg = "글이 존재하지 않습니다.\\n\\n글이 삭제되었거나 이동된 경우입니다.";
        if ($cwin)
            alert_close($msg);
        else
            alert($msg, "./board.php?bo_table=$bo_table");
    }

    // 그룹접근 사용
    if ($group[gr_use_access])
    {
        if (!$member[mb_id]) {
            $msg = "비회원은 이 게시판에 접근할 권한이 없습니다.\\n\\n회원이시라면 로그인 후 이용해 보십시오.";
            if ($cwin)
                alert_close($msg);
            else
                alert($msg, "./login.php?wr_id=$wr_id{$qstr}&url=".urlencode("./board.php?bo_table=$bo_table&wr_id=$wr_id"));
        }

        // 그룹관리자 이상이라면 통과
        if ($is_admin == "super" || $is_admin == "group")
            ;
        else
        {
            // 그룹접근
            $sql = " select count(*) as cnt
                      from $g4[group_member_table]
                      where gr_id = '$board[gr_id]' and mb_id = '$member[mb_id]' ";
            $row = sql_fetch($sql);
            if (!$row[cnt])
                alert("접근 권한이 없으므로 글읽기가 불가합니다.\\n\\n궁금하신 사항은 관리자에게 문의 바랍니다.", $g4[path]);
        }
    }

    // 로그인된 회원의 권한이 설정된 읽기 권한보다 작다면
    if ($member[mb_level] < $board[bo_read_level])
    {
/*
//원본
        //if ($member[mb_id])
        //    alert("글을 읽을 권한이 없습니다.");
*/
        if ($member[mb_id]) {
// if ~ else if구문 추가(2006.03.27. by nasca)
//자신의 글이 아니라면 경고메시지 출력
if ($write[mb_id] != "$member[mb_id]") {
            alert("글을 읽을 권한이 없습니다.");
//자신의 글이고 읽기권한보다 크다면 통과
    } else if ($write[mb_id] == "$member[mb_id]") {
;
}
}
        else
            alert("글을 읽을 권한이 없습니다.\\n\\n회원이시라면 로그인 후 이용해 보십시오.", "./login.php?wr_id=$wr_id{$qstr}&url=".urlencode("board.php?bo_table=$bo_table&wr_id=$wr_id"));
    }

    // 자신의 글이거나 관리자라면 통과
    if (($write[mb_id] && $write[mb_id] == $member[mb_id]) || $is_admin)
        ;
    else
    {
        // 비밀글이라면
        if (strstr($write[wr_option], "secret")) {
            $ss_name = "ss_secret_{$bo_table}_$write[wr_num]";
            //$ss_name = "ss_secret_{$bo_table}_{$wr_id}";
            // 한번 읽은 게시물의 번호는 세션에 저장되어 있고 같은 게시물을 읽을 경우는 다시 패스워드를 묻지 않습니다.
            // 이 게시물이 저장된 게시물이 아니면서 관리자가 아니라면
            //if ("$bo_table|$write[wr_num]" != get_session("ss_secret"))
            if (!get_session($ss_name))
                goto_url("./password.php?w=s&bo_table=$bo_table&wr_id=$wr_id{$qstr}");

            set_session($ss_name, TRUE);
        }
    }

/*
    // 한번 읽은글은 브라우저를 닫기전까지는 카운트를 증가시키지 않음
    $ss_name = "ss_view_{$bo_table}_{$wr_id}";
    if (!get_session($ss_name))
    {
        sql_query(" update $write_table set wr_hit = wr_hit + 1 where wr_id = '$wr_id' ");

        // 자신의 글이면 통과
        if ($write[mb_id] && $write[mb_id] == $member[mb_id])
            ;
        else
        {
            // 회원이상 글읽기가 가능하다면
            if ($board[bo_read_level] > 1) {
                if ($member[mb_point] + $board[bo_read_point] < 0)
                    alert("보유하신 포인트(".number_format($member[mb_point]).")가 없어나 모자라서 글읽기(".number_format($board[bo_read_point]).")가 불가합니다.\\n\\n포인트를 모으신 후 다시 글읽기 해 주십시오.");

                insert_point($member[mb_id], $board[bo_read_point], "$board[bo_subject] $wr_id 글읽기", $bo_table, $wr_id, '읽기');
            }
        }

        set_session($ss_name, TRUE);
    }
*/

    //$g4[title] = "$group[gr_subject] > $board[bo_subject] > " . strip_tags(conv_subject($write[wr_subject], 255));//원본
if (($board[bo_table] == "comment") || ($board[bo_table] == "days")) {//제어할 게시판 지정(by nasca)
if ($list[wr_1] || $list[wr_2] || $list[wr_9]) {
    $g4[title] = "$group[gr_subject] > $board[bo_subject] > " . "제어된 게시물 입니다.";
}
} else {
    $g4[title] = "$group[gr_subject] > $board[bo_subject] > " . strip_tags(conv_subject($write[wr_subject], 255));
}
}
else
{
    if ($member[mb_level] < $board[bo_list_level])
    {
        if ($member[mb_id])
            alert("목록을 볼 권한이 없습니다.");
        else
            alert("목록을 볼 권한이 없습니다.\\n\\n회원이시라면 로그인 후 이용해 보십시오.", "./login.php?wr_id=$wr_id{$qstr}&url=".urlencode("board.php?bo_table=$bo_table&wr_id=$wr_id"));
    }

    if (!$page) $page = 1;

    $g4[title] = "$group[gr_subject] > $board[bo_subject] $page 페이지";
}

include_once("$g4[path]/head.sub.php");

// 특정 그룹에 대한 접근제어구문 때문에 논리적 오류 발생(coun)되므로 주석처리 후 차후검토.
// 이 구문은 최상단에서 $group[gr_id] == 'coun'과 관은 형태로 미리 지정해서 간단히 끊어줘버리는 것도 고려.
// 그러나, 이러한 방법은 nasca가 싫어한답니다.
/*
else
{
    //if ($member[mb_level] < $board[bo_list_level])//원본 (2006.02.28)
    if (($member[mb_level] < $board[bo_list_level]) || ($group[gr_id] == "coun"))//그룹접근 게시판(임시로 접근제어)
    {
    if($is_admin) {//관리자라면 통과(그룹제어된 게시판이라도 목록보기 레벨 이상이라면 리스트까지는 접근할 수 있는 문제가 발생되어 추가시킨 구문
    "";
        } else if ($member[mb_id]) {
            alert("목록을 볼 권한이 없습니다.");
        } else {
            alert("목록을 볼 권한이 없습니다.\\n\\n회원이시라면 로그인 후 이용해 보십시오.", "./login.php?wr_id=$wr_id{$qstr}&url=".urlencode("board.php?bo_table=$bo_table&wr_id=$wr_id"));
}
    }

    if (!$page) $page = 1;

    $g4[title] = "$group[gr_subject] > $board[bo_subject] $page 페이지";
}

include_once("$g4[path]/head.sub.php");
*/

$width = $board[bo_table_width];
if ($width <= 100) $width .= '%';

// IP보이기 사용 여부
$ip = "";
$is_ip_view = $board[bo_use_ip_view];
if ($is_admin) {
    $is_ip_view = true;
    $ip = $write[wr_ip];
} else // 관리자가 아니라면 IP 주소를 감춘후 보여줍니다.
    $ip = preg_replace("/([0-9]+).([0-9]+).([0-9]+).([0-9]+)/", "\\1.♡.\\3.\\4", $write[wr_ip]);

// 분류 사용
$is_category = false;
$category_name = "";
if ($board[bo_use_category]) {
    $is_category = true;
    $category_name = $write[ca_name]; // 분류명
}

// 추천 사용
$is_good = false;
if ($board[bo_use_good])
    $is_good = true;

// 비추천 사용
$is_nogood = false;
if ($board[bo_use_nogood])
    $is_nogood = true;

$admin_href = "";
// 최고관리자 또는 그룹관리자라면
if ($member[mb_id] && ($is_admin == 'super' || $group[gr_admin] == $member[mb_id]))
    $admin_href = "$g4[admin_path]/board_form.php?w=u&bo_table=$bo_table";

if (!($board[bo_use_comment] && $cwin))
    include_once("./board_head.php");

echo "<script language=\"javascript\" src=\"$g4[path]/js/sideview.js\"></script>\n";

if (!($board[bo_use_comment] && $cwin)) {
    // 게시물 아이디가 있다면 게시물 보기를 INCLUDE
    if ($wr_id)
        include_once("./view.php");

    // 한번 읽은글은 브라우저를 닫기전까지는 카운트를 증가시키지 않음(각종 제어권한으로 게시물에 접근하지 못할 경우 조회수 증가를 방지하기 위해 소스코드의 위치만 변경. 헐랭이님 팁
    $ss_name = "ss_view_{$bo_table}_{$wr_id}";
    if (!get_session($ss_name))
    {
        sql_query(" update $write_table set wr_hit = wr_hit + 1 where wr_id = '$wr_id' ");

        // 자신의 글이면 통과
        if ($write[mb_id] && $write[mb_id] == $member[mb_id])
            ;
        else
        {
            // 회원이상 글읽기가 가능하다면
            if ($board[bo_read_level] > 1) {
                if ($member[mb_point] + $board[bo_read_point] < 0)
                    alert("보유하신 포인트(".number_format($member[mb_point]).")가 없어나 모자라서 글읽기(".number_format($board[bo_read_point]).")가 불가합니다.\\n\\n포인트를 모으신 후 다시 글읽기 해 주십시오.");

                insert_point($member[mb_id], $board[bo_read_point], "$board[bo_subject] $wr_id 글읽기", $bo_table, $wr_id, '읽기');
            }
        }

        set_session($ss_name, TRUE);
    }

    // 전체목록보이기 사용이 "예" 또는 wr_id 값이 없다면 목록을 보임
    //if ($board[bo_use_list_view] || empty($wr_id))
    if ($member[mb_level] >= $board[bo_list_level] && $board[bo_use_list_view] || empty($wr_id))
        include_once ("./list.php");

    include_once("./board_tail.php");
}
else
    include_once("./view_comment.php");

echo "\n<!-- 사용스킨 : $board[bo_skin] -->\n";

include_once("$g4[path]/tail.sub.php");
?>
전체 1 |RSS
그누4 팁자료실 내용 검색
  • 개별 목록 구성 번호 제목 작성자 작성일 추천 조회
  • 게시물이 없습니다.

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT