2026, 새로운 도약을 시작합니다.

그누보드 최신버전 (5.1.1) 살펴보기 - bbs/board.php (1)

그누보드 최신버전 (5.1.1) 살펴보기 - bbs/board.php (1)
bbs/board.php 는 게시판의 리스트와 내용보기에 사용됩니다.
common.php 에서 생성된 $write 배열에 값이 있을 경우에는 내용보기, 없을시에는 리스트로 출력됩니다.
include_once('./_common.php');

그누보드를 이용한다면 기본적으로 항상 포함되어야 하는 내용입니다.

_common.php 에는 

include_once('../common.php');

와 같이 그누보드 최상단의 common.php 를 인클루드 합니다.



if (!$board['bo_table']) {
   alert('존재하지 않는 게시판입니다.', G5_URL);
}

$board 배열변수는 common.php에서

if (isset($_REQUEST['bo_table'])) {
    $bo_table = preg_replace('/[^a-z0-9_]/i', '', trim($_REQUEST['bo_table']));
    $bo_table = substr($bo_table, 0, 20);
} else {
    $bo_table = '';
}

이 부분과

if ($bo_table) {
    $board = sql_fetch(" select * from {$g5['board_table']} where bo_table = '$bo_table' ");

이 부분을 통해서 배열값이 저장됩니다.

$board 변수가 존재하더라도 

$board = sql_fetch(" select * from {$g5['board_table']} where bo_table = '$bo_table' ");

에서 보는 바와 같이 해당 $bo_table 이 설정되지 않은 게시판이라면 false 값을 가지고 있습니다.

따라서

if (!$board['bo_table']) {
   alert('존재하지 않는 게시판입니다.', G5_URL);
}

이 부분은

if (!isset($board) || !is_array($board) || !isset($board['bo_table']) || strlen($board['bo_table']) == 0) {

와 같이 사용하는 것이 정확합니다.



check_device($board['bo_device']);

$board['bo_device'] 는 게시판 환경설정에서 접속기기 설정에 의해 저장된값입니다.

both, pc, mobile 세가지 값이 올 수 있으며

pc 는 pc 만 허용, mobile 은 mobile 만 허용, both는 모두 허용 입니다.

lib/common.lib.php

function check_device($device)
{
    global $is_admin;

    if ($is_admin) return;

    if ($device=='pc' && G5_IS_MOBILE) {
        alert('PC 전용 게시판입니다.', G5_URL);
    } else if ($device=='mobile' && !G5_IS_MOBILE) {
        alert('모바일 전용 게시판입니다.', G5_URL);
    }
}

관리자 일경우는 상관이 없고

pc 전용 게시판인데 현재 모바일용 출력 상황이라면 경고메시지 띄우고 메인으로 이동,

모바일 전용 게시판인데 현재 pc용 출력 상황이라면 경고메시지 띄우고 메인으로 이동합니다.



if (isset($write['wr_is_comment']) && $write['wr_is_comment']) {
    goto_url('./board.php?bo_table='.$bo_table.'&wr_id='.$write['wr_parent'].'#c_'.$wr_id);
}

$write 배열변수는 common.php에서

if (isset($_REQUEST['wr_id'])) {
    $wr_id = (int)$_REQUEST['wr_id'];
} else {
    $wr_id = 0;
}

이 부분과

$write = array();
$write_table = "";
if ($bo_table) {
    $board = sql_fetch(" select * from {$g5['board_table']} where bo_table = '$bo_table' ");
    if ($board['bo_table']) {
        set_cookie("ck_bo_table", $board['bo_table'], 86400 * 1);
        $gr_id = $board['gr_id'];
        $write_table = $g5['write_prefix'] . $bo_table; // 게시판 테이블 전체이름
        //$comment_table = $g5['write_prefix'] . $bo_table . $g5['comment_suffix']; // 코멘트 테이블 전체이름
        if (isset($wr_id) && $wr_id)
            $write = sql_fetch(" select * from $write_table where wr_id = '$wr_id' ");
    }
}

이 부분을 통해서 배열값이 저장됩니다.

$write 변수가 존재하더라도 

$write = array(); 배열로 선언한 초기값을 가지거나

$write = sql_fetch(" select * from $write_table where wr_id = '$wr_id' ");

에서 보는 바와 같이 해당 $wr_id 의 게시물이 없는 경우 false 의 값을 가질수 있습니다.

if (isset($write['wr_is_comment']) && $write['wr_is_comment']) {

해당 게시물의 댓글 인지 여부를 따지는  $write['wr_is_comment'] 변수가 정의 되어 있고 $write['wr_is_comment'] 에 값(1)이 있으면

댓글 보기 페이지로 이동 시키기 위한 부분입니다.

if (isset($write['wr_is_comment']) && $write['wr_is_comment'] == 1) {

또는

if (isset($write['wr_is_comment']) && !empty($write['wr_is_comment'])) {

정도가 더 정확할것 같습니다.



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

이 부분은 굳이 필요없는 부분입니다.

$bo_table 가 없다면 $board 에 값이 없고 이미 이전의 

if (!$board['bo_table']) {
   alert('존재하지 않는 게시판입니다.', G5_URL);
}

이 부분에 걸려 여기까지 내려올수 없습니다.

만약 제대로 된 형식으로 접속하라는 경고를 보여주고 싶으면

if (!$board['bo_table']) {
   alert('존재하지 않는 게시판입니다.', G5_URL);
}

이 부분 상위에

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

이 부분을 넣는게 맞다고 보여집니다.



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

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

        // 그룹관리자 이상이라면 통과
        if ($is_admin == "super" || $is_admin == "group") {
            ;
        } else {
            // 그룹접근
            $sql = " select count(*) as cnt from {$g5['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궁금하신 사항은 관리자에게 문의 바랍니다.", G5_URL);
            }
        }
    }

    // 로그인된 회원의 권한이 설정된 읽기 권한보다 작다면
    if ($member['mb_level'] < $board['bo_read_level']) {
        if ($is_member)
            alert('글을 읽을 권한이 없습니다.', G5_URL);
        else
            alert('글을 읽을 권한이 없습니다.\\n\\n회원이시라면 로그인 후 이용해 보십시오.', './login.php?wr_id='.$wr_id.$qstr.'&amp;url='.urlencode(G5_BBS_URL.'/board.php?bo_table='.$bo_table.'&amp;wr_id='.$wr_id.$qstr));
    }

    // 본인확인을 사용한다면
    if ($config['cf_cert_use'] && !$is_admin) {
        // 인증된 회원만 가능
        if ($board['bo_use_cert'] != '' && $is_guest) {
            alert('이 게시판은 본인확인 하신 회원님만 글읽기가 가능합니다.\\n\\n회원이시라면 로그인 후 이용해 보십시오.', './login.php?wr_id='.$wr_id.$qstr.'&amp;url='.urlencode(G5_BBS_URL.'/board.php?bo_table='.$bo_table.'&amp;wr_id='.$wr_id.$qstr));
        }

        if ($board['bo_use_cert'] == 'cert' && !$member['mb_certify']) {
            alert('이 게시판은 본인확인 하신 회원님만 글읽기가 가능합니다.\\n\\n회원정보 수정에서 본인확인을 해주시기 바랍니다.', G5_URL);
        }

        if ($board['bo_use_cert'] == 'adult' && !$member['mb_adult']) {
            alert('이 게시판은 본인확인으로 성인인증 된 회원님만 글읽기가 가능합니다.\\n\\n현재 성인인데 글읽기가 안된다면 회원정보 수정에서 본인확인을 다시 해주시기 바랍니다.', G5_URL);
        }

        if ($board['bo_use_cert'] == 'hp-cert' && $member['mb_certify'] != 'hp') {
            alert('이 게시판은 휴대폰 본인확인 하신 회원님만 글읽기가 가능합니다.\\n\\n회원정보 수정에서 휴대폰 본인확인을 해주시기 바랍니다.', G5_URL);
        }

        if ($board['bo_use_cert'] == 'hp-adult' && (!$member['mb_adult'] || $member['mb_certify'] != 'hp')) {
            alert('이 게시판은 휴대폰 본인확인으로 성인인증 된 회원님만 글읽기가 가능합니다.\\n\\n현재 성인인데 글읽기가 안된다면 회원정보 수정에서 휴대폰 본인확인을 다시 해주시기 바랍니다.', G5_URL);
        }
    }

    // 자신의 글이거나 관리자라면 통과
    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&amp;bo_table='.$bo_table.'&amp;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 ($is_guest && $board['bo_read_level'] == 1 && $write['wr_ip'] == $_SERVER['REMOTE_ADDR']) {
            // 비회원이면서 읽기레벨이 1이고 등록된 아이피가 같다면 자신의 글이므로 통과
            ;
        } else {
            // 글읽기 포인트가 설정되어 있다면
            if ($config['cf_use_point'] && $board['bo_read_point'] && $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);
    }

    $g5['title'] = strip_tags(conv_subject($write['wr_subject'], 255))." > ".$board['bo_subject'];
}

이 부분은 $wr_id 변수가 존재하고 값이 있다면 내용보기 페이지이므로 거기에 맞는 체크를 하는 부분입니다.

if (isset($wr_id) && $wr_id) {

보다는

if (isset($wr_id) && $wr_id > 0) {

이 나아보입니다.


if (!$write['wr_id']) {
    $msg = '글이 존재하지 않습니다.\\n\\n글이 삭제되었거나 이동된 경우입니다.';
    alert($msg, './board.php?bo_table='.$bo_table);
}

이 부분은 $wr_id 변수는 존재하지만, 해당 게시글 존재하지 않을때 에러를 발생시키는 부분입니다.

if (empty($write['wr_id'])) {

정도가 적당할것 같습니다.

empty 는 인자로 들어오는 변수가 정의되어잇지 않거나

0, 0.0, false, null, 빈값, 빈배열 같은 경우에 참을 반환합니다.




참고로 게시판 리스트 일 경우 필수 변수는

$bo_table, $board, $group

게시판 내용보기 일 경우 필수 변수는

$bo_table, $board, $group, $wr_id, $write 

입니다. 모두 값이 empty 이어서는 안됩니다.



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

    // 그룹관리자 이상이라면 통과
    if ($is_admin == "super" || $is_admin == "group") {
        ;
    } else {
        // 그룹접근
        $sql = " select count(*) as cnt from {$g5['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궁금하신 사항은 관리자에게 문의 바랍니다.", G5_URL);
        }
    }
}

이 부분은 해당 게시판이 속한 그룹의 설정에서 

접근회원사용 이라는 설정에 체크를 한경우에 동작합니다.

즉, 해당 설정이 활성화 되어있을 경우 그 그룹에 소속된 회원만이 해당 게시판에 접근 할수 있도록 하는 것입니다.

어차피 슈퍼관리자와 그룹관리자는 해당 사항이 없으므로

if ($is_admin != "super" && $is_admin != "group") {

    if (isset($group['gr_use_access']) && $group['gr_use_access']) {

        if ($is_guest) {

            $msg = "비회원은 이 게시판에 접근할 권한이 없습니다.\\n\\n회원이시라면 로그인 후 이용해 보십시오.";
            alert($msg, './login.php?wr_id='.$wr_id.$qstr.'&amp;url='.urlencode(G5_BBS_URL.'/board.php?bo_table='.$bo_table.'&amp;wr_id='.$wr_id.$qstr));
        }
        else {

            $sql = " select count(*) as cnt from {$g5['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궁금하신 사항은 관리자에게 문의 바랍니다.", G5_URL);
            }
        }
    }
}

와 같은 형태로 바꾸는것이 더 좋아 보입니다.



if ($member['mb_level'] < $board['bo_read_level']) {
    if ($is_member)
        alert('글을 읽을 권한이 없습니다.', G5_URL);
    else
        alert('글을 읽을 권한이 없습니다.\\n\\n회원이시라면 로그인 후 이용해 보십시오.', './login.php?wr_id='.$wr_id.$qstr.'&amp;url='.urlencode(G5_BBS_URL.'/board.php?bo_table='.$bo_table.'&amp;wr_id='.$wr_id.$qstr));
}

이 부분은 게시판의 읽기 레벨을 체크하는 부분입니다.

이 부분 역시 if ($is_admin != "super" && $is_admin != "group") { 안으로 들어가고

if ($is_admin != "board") {

안으로 넣는 것이 좋아보입니다.

어차피 관리자(슈퍼, 그룹, 게시판)로 지정된 회원은 레벨을 따지는 것은 의미가 크지 않기 때문입니다.



if ($config['cf_cert_use'] && !$is_admin) {
    // 인증된 회원만 가능
    if ($board['bo_use_cert'] != '' && $is_guest) {
        alert('이 게시판은 본인확인 하신 회원님만 글읽기가 가능합니다.\\n\\n회원이시라면 로그인 후 이용해 보십시오.', './login.php?wr_id='.$wr_id.$qstr.'&amp;url='.urlencode(G5_BBS_URL.'/board.php?bo_table='.$bo_table.'&amp;wr_id='.$wr_id.$qstr));
    }

    if ($board['bo_use_cert'] == 'cert' && !$member['mb_certify']) {
        alert('이 게시판은 본인확인 하신 회원님만 글읽기가 가능합니다.\\n\\n회원정보 수정에서 본인확인을 해주시기 바랍니다.', G5_URL);
    }

    if ($board['bo_use_cert'] == 'adult' && !$member['mb_adult']) {
        alert('이 게시판은 본인확인으로 성인인증 된 회원님만 글읽기가 가능합니다.\\n\\n현재 성인인데 글읽기가 안된다면 회원정보 수정에서 본인확인을 다시 해주시기 바랍니다.', G5_URL);
    }

    if ($board['bo_use_cert'] == 'hp-cert' && $member['mb_certify'] != 'hp') {
        alert('이 게시판은 휴대폰 본인확인 하신 회원님만 글읽기가 가능합니다.\\n\\n회원정보 수정에서 휴대폰 본인확인을 해주시기 바랍니다.', G5_URL);
    }

    if ($board['bo_use_cert'] == 'hp-adult' && (!$member['mb_adult'] || $member['mb_certify'] != 'hp')) {
        alert('이 게시판은 휴대폰 본인확인으로 성인인증 된 회원님만 글읽기가 가능합니다.\\n\\n현재 성인인데 글읽기가 안된다면 회원정보 수정에서 휴대폰 본인확인을 다시 해주시기 바랍니다.', G5_URL);
    }
}

게시판 환경설정에서 본인확인사용 설정에 사용안함 외의 값이 설정되어 있을때 동작합니다. 사용안함은 빈값입니다.

부가서비스인 아이폰 본인인증이나 핸드폰 본인인증을 사용할경우 위의 설정이 활성화됩니다.



그 외의 부분은 비밀글 열람에 관한 체크와 조회수 증가에 대한 부분입니다.
|

댓글 76개

술술 넘어가는 강좌 항상 고맙습니다!
네 고맙습니다
수고하셨습니다.
네 고맙습니다.
감사합니다.
우주인들이 사용하는 외계어처럼 보이던 글이 이제는 지구인들이 사용하는 지구어처럼 보이기 시작합니다. 곧 한국인이 사용하는 한국어처럼 느껴져야 할 터인데... 늘 수고가 많으십니다.
네에 ㅎㅎ
좋은 현상이네요
고맙습니다
선추천 후감상
고객님 다들 그렇게 하십니다....
고맙습니다.
처음으로 유창화님의 강좌를 보고 있습니다
앞으로도 꾸준히 보도록 노력하겠습니다
좋은 강좌 만들어 주셔서 정말 감사합니다
네에 고맙습니다.
선감상 후추천(응?)
유익한 강좌 감사합니다..^^
인자 변수 배열 ...초보가 이해하긴 조금 어렵지만
아무튼 좋은 강좌입니다~
책 기대하고 있는데 기다려도 되는지요?
글세요. 그건 잘 모르겠습니다.
십몇년 전에 진행하다 중단한 일이라...
감사합니다.

신고가 접수되어 자동으로 블라인드 된 댓글입니다. 원문을 보시려면 를 클릭하세요.

신고가 접수되어 자동으로 블라인드 된 댓글입니다. 원문을 보시려면 를 클릭하세요.

신고가 접수되어 자동으로 블라인드 된 댓글입니다. 원문을 보시려면 를 클릭하세요.

신고가 접수되어 자동으로 블라인드 된 댓글입니다. 원문을 보시려면 를 클릭하세요.

신고가 접수되어 자동으로 블라인드 된 댓글입니다. 원문을 보시려면 를 클릭하세요.

신고가 접수되어 자동으로 블라인드 된 댓글입니다. 원문을 보시려면 를 클릭하세요.

신고가 접수되어 자동으로 블라인드 된 댓글입니다. 원문을 보시려면 를 클릭하세요.

신고가 접수되어 자동으로 블라인드 된 댓글입니다. 원문을 보시려면 를 클릭하세요.

신고가 접수되어 자동으로 블라인드 된 댓글입니다. 원문을 보시려면 를 클릭하세요.

신고가 접수되어 자동으로 블라인드 된 댓글입니다. 원문을 보시려면 를 클릭하세요.

신고가 접수되어 자동으로 블라인드 된 댓글입니다. 원문을 보시려면 를 클릭하세요.

신고가 접수되어 자동으로 블라인드 된 댓글입니다. 원문을 보시려면 를 클릭하세요.

신고가 접수되어 자동으로 블라인드 된 댓글입니다. 원문을 보시려면 를 클릭하세요.

신고가 접수되어 자동으로 블라인드 된 댓글입니다. 원문을 보시려면 를 클릭하세요.

신고가 접수되어 자동으로 블라인드 된 댓글입니다. 원문을 보시려면 를 클릭하세요.

신고가 접수되어 자동으로 블라인드 된 댓글입니다. 원문을 보시려면 를 클릭하세요.

신고가 접수되어 자동으로 블라인드 된 댓글입니다. 원문을 보시려면 를 클릭하세요.

신고가 접수되어 자동으로 블라인드 된 댓글입니다. 원문을 보시려면 를 클릭하세요.

https://www.lpa.eco/profile/slot-gacor/profile
https://www.movimientosalud2030.com/profile/slot-gacor-2022-gampang-menang/profile
https://www.theliverpoolpub.com/profile/slot-gacor-2022-gampang-menang/profile
https://en.wowstore.fr/profile/slot-gacor/profile
https://www.medmotion.org/profile/daftar-slot-gacor-2022-gampang-menang/profile
https://scottlangton.wixsite.com/sjlangton/profile/slot-gacor-2022/profile
https://www.studentsagainstchildmarriage.org/profile/slot-gacor-2022/profile
https://www.undiscoveredath.com/profile/slot-gacor-2022/profile
https://www.revistaveredas.com.br/profile/slot-gacor-2022/profile
https://www.canadianyouthdelegate.org/profile/daftar-agen-slot-gacor-2022/profile
https://www.terrificinc.org/profile/slot-gacor-2022/profile
https://new.c.mi.com/my/post/11443/
https://new.c.mi.com/my/post/11587
https://new.c.mi.com/my/post/11438/Situs_SLOT_GACOR_MAXWIN_Hari_Ini_Terbaru_2022_Paling_Gampang_Menang
https://new.c.mi.com/my/post/11461/Daftar_Agen_Slot_Gacor_2022_Gampang_Menang_Dan_Mudah_Maxwin_Terbaru
https://new.c.mi.com/my/post/11638/Daftar_22_Link_Agen_Slot_Gacor_Hari_ini_2022_Mudah_Menang
https://new.c.mi.com/my/post/11643/Info_Bocoran_Slot_Gacor_Malam_Hari_Ini_Mudah_Menang_Maxwin
https://new.c.mi.com/my/post/11686/Daftar_Link_Agen_Slot_Gacor_Malam_Ini_2022_Terpercaya
https://new.c.mi.com/my/post/11760/Info_Bocoran_Pola_Dan_Jam_Hoki_Main_Slot_Gacor_Hari_Ini
https://new.c.mi.com/my/post/15225/Bocoran_Pola_Slot_Gacor_Terpercaya_2022_RTP_Tertinggi_Mudah_Maxwin
https://new.c.mi.com/my/post/15225/Bocoran_Pola_Slot_Gacor_Terbaru_2022_RTP_Tertinggi_Mudah_Maxwin
https://new.c.mi.com/my/post/15417/Daftar_Link_Agen_Slot_Gacor_Malam_Ini_Terpercaya_Mudah_Menang
https://new.c.mi.com/my/post/15399/Situs_SLOT_GACOR_MAXWIN_Hari_Ini_Terbaru_2022_Paling_Gampang_Menang
https://new.c.mi.com/my/post/15412/Link_RTP_Terbaru_Maxwin_Slot_Gacor_Pragmatic_Play_Malam_Ini_Gampang_Menang_Sensational
https://new.c.mi.com/my/post/15460/Daftar_22_Link_Agen_Slot_Gacor_Hari_ini_2022_Mudah_Menang
https://new.c.mi.com/my/post/15454/Agen_Slot_Gacor_Terpercaya_Hari_Ini_Gampang_Menang_Maxwin
https://new.c.mi.com/my/post/15528/Daftar_10_Situs_Slot_Gacor_Terpercaya_2022_Mudah_Menang
https://new.c.mi.com/my/post/15471/Link_Situs_Slot_Gacor_Terpercaya_2022_Anti_Kalah_Gampang_Maxwin
https://new.c.mi.com/my/post/15459/Salam_Agen_Gacor_2022
https://new.c.mi.com/ph/post/37166/Daftar_Bocoran_20_Agen_Slot_Gacor_Terpercaya_Gampang_Maxwin_Hari_Ini
https://new.c.mi.com/ph/post/37166
https://new.c.mi.com/ph/post/37295/Situs_Judi_Slot_Online_Gacor_Terbaru_2022_Mudah_Maxwin_Malam_Ini
https://new.c.mi.com/ph/post/37295
https://new.c.mi.com/th/post/40261/Situs_Judi_Slot_Online_Gacor_Terbaru_2022_Mudah_Maxwin_Malam_Ini
https://new.c.mi.com/th/post/40261
https://new.c.mi.com/th/post/40962/Daftar_Bocoran_20_Agen_Slot_Gacor_Terpercaya_Gampang_Maxwin_Hari_Ini
https://new.c.mi.com/th/post/40962

신고가 접수되어 자동으로 블라인드 된 댓글입니다. 원문을 보시려면 를 클릭하세요.

https://new.c.mi.com/ph/post/20465
https://www.pmb.uim.ac.id/wp-content/uploads/slot-gacor-2023/
https://anjatan.indramayukab.go.id/wp-content/slot-server-jepang/
https://anjatan.indramayukab.go.id/wp-includes/slot-bca/
https://arahan.indramayukab.go.id/wp-includes/images/
https://arahan.indramayukab.go.id/wp-content/slot-kamboja/
https://arahan.indramayukab.go.id/wp-content/slot-thailand/
https://anjatan.indramayukab.go.id/wp-includes/slot-bri/
https://anjatan.indramayukab.go.id/wp-includes/slot-bank-neo/
https://anjatan.indramayukab.go.id/wp-includes/slot-bank-jago/
https://anjatan.indramayukab.go.id/wp-includes/slot-bank-permata/
https://blk.tabalongkab.go.id/wp-content/slot-thailand/
http://prbhtl.usk.ac.id/slot-dana/
https://fekon.unsam.ac.id/wp-content/slot-5000/
https://fekon.unsam.ac.id/wp-includes/assets/link-slot-kamboja/
https://fekon.unsam.ac.id/js/slot-server-thailand/
https://fekon.unsam.ac.id/wp-content/uploads/2023/
https://kemahasiswaan.usn.ac.id/js/slot-gacor-2023/
https://kemahasiswaan.usn.ac.id/images/slot-server-kamboja/
https://perpus.usn.ac.id/
https://kemahasiswaan.usn.ac.id/slot88/
https://fti.usn.ac.id/asset/slot-amerika/
https://satudata.lamongankab.go.id/slot-bri/
https://satudata.lamongankab.go.id/images/toto-slot/
https://satudata.lamongankab.go.id/admin/slot88/
https://fh.unhamzah.ac.id/wp-content/slot-gacor-2023/
https://fh.unhamzah.ac.id/wp-includes/assets/
https://bio.sci.unhas.ac.id/slot-taiwan/
https://bio.sci.unhas.ac.id/wp-content/slot-rusia/
https://bio.sci.unhas.ac.id/wp-includes/akun-pro-thailand/
https://coronavirus.jalisco.gob.mx/wp-includes/assets/
http://laws.fish.ku.ac.th/images/slot-dana/
http://vdd.sakura.ne.jp/slot-online-gacor/
https://jbo.mbpp.gov.my/vendor/slot-4d-gacor/
https://jbo.mbpp.gov.my/assets/js/slot-gacor-2023/
https://nips.nust.edu.pk/wp-content/akun-pro-jepang/
https://nips.nust.edu.pk/wp-includes/js/slot-server-kamboja/
http://envios-jein.frlp.utn.edu.ar/public/slot-server-jepang/
https://marathon.cuhk.edu.hk/uploads/daftar-slot-kamboja/
https://marathon.cuhk.edu.hk/link-slot-thailand/
https://governor.mp.gov.in/images/slot-malaysia-terpercaya/
https://governor.mp.gov.in/media/slot-server-kamboja/

신고가 접수되어 자동으로 블라인드 된 댓글입니다. 원문을 보시려면 를 클릭하세요.

신고가 접수되어 자동으로 블라인드 된 댓글입니다. 원문을 보시려면 를 클릭하세요.

https://www.thebeachlittlehampton.co.uk/group/mysite-231-group/discussion/2f1b5609-9504-449f-b0d1-15b49a183e07
https://www.thebeachlittlehampton.co.uk/group/mysite-231-group/discussion/3a0f9af0-ad01-4abd-bf23-064f39092f6f
https://www.thebeachlittlehampton.co.uk/group/mysite-231-group/discussion/32a72b4f-e4c8-4cb1-959c-6dddf6e3a2dc
https://www.thebeachlittlehampton.co.uk/group/mysite-231-group/discussion/fc1a771e-db7d-4a23-96d6-51c25af188cf
https://www.thebeachlittlehampton.co.uk/group/mysite-231-group/discussion/f3eca8db-6210-432e-9cdd-bd762c499c18
https://www.thebeachlittlehampton.co.uk/group/mysite-231-group/discussion/f2c78117-c078-4a8e-9f22-bd58b50aad89
https://www.thebeachlittlehampton.co.uk/group/mysite-231-group/discussion/ed954c07-88d3-467d-a18b-9e18f65d5e65
https://www.thebeachlittlehampton.co.uk/group/mysite-231-group/discussion/291fb027-2675-4945-841d-ef048ff9d354
https://www.thebeachlittlehampton.co.uk/group/mysite-231-group/discussion/d3fa5a2d-edd8-4f13-aa0d-09e317b9caa4
https://www.thebeachlittlehampton.co.uk/group/mysite-231-group/discussion/e4679d2e-a99f-44fb-9b0c-5bfd32852542
https://www.thebeachlittlehampton.co.uk/group/mysite-231-group/discussion/d80d09e1-c24d-48e1-b1a0-05e460a73a3f
https://www.thebeachlittlehampton.co.uk/group/mysite-231-group/discussion/b4e0e562-2e76-40ed-be5e-571aa9562e5d
https://www.thebeachlittlehampton.co.uk/group/mysite-231-group/discussion/9cabb29a-63b3-4880-b266-4ba4ce2f2bd2
https://www.thebeachlittlehampton.co.uk/group/mysite-231-group/discussion/59b2cb65-2289-44d2-9529-558f03bbadc0
https://www.thebeachlittlehampton.co.uk/group/mysite-231-group/discussion/364fbbb8-b83b-4494-aee1-48fb03cf5ad3
https://www.thebeachlittlehampton.co.uk/group/mysite-231-group/discussion/7e4a0b67-af60-4f6a-abb6-937988a22fff
https://www.thebeachlittlehampton.co.uk/group/mysite-231-group/discussion/0f44cc6c-5497-4340-9b5a-a75986711c4e
http://digilib.umpwr.ac.id/vendor/slot-vietnam/
http://digilib.umpwr.ac.id/simbio2/akun-pro-thailand/
https://kantinslot.netlify.app/
https://hukum.upnvj.ac.id/wp-content/uploads/slot-server-thailand/
https://hukum.upnvj.ac.id/wp-content/uploads/akun-pro-kamboja/
<a href="https://hukum.upnvj.ac.id/wp-content/gallery/akun-pro-thailand/">akun pro thailand</a>
https://hukum.upnvj.ac.id/wp-content/gallery/akun-pro-thailand/
https://ckan.pontianak.go.id/uploads/user/2023-05-31-094814.977171akun-pro-thailand.html
https://ckan.pontianak.go.id/uploads/user/2023-05-31-094916.599000slot-dana.html
https://ckan.pontianak.go.id/uploads/user/2023-05-31-094945.716488slot-gacor.html
https://ckan.pontianak.go.id/uploads/user/2023-05-31-095012.049284slot-server-jepang.html
https://ckan.pontianak.go.id/uploads/user/2023-05-31-095036.559004slot-server-kamboja.html
https://ckan.pontianak.go.id/uploads/user/2023-05-31-095059.303352slot-server-thailand.html
https://ckan.pontianak.go.id/uploads/user/2023-05-31-095127.484140Slot-Vietnam.html
https://ckan.pontianak.go.id/uploads/user/2023-05-31-090159.870439daftar-slot-gacor.html
https://ckan.pontianak.go.id/uploads/user/2023-05-31-090241.569109gameslotgacor.html
https://ckan.pontianak.go.id/uploads/user/2023-05-31-090317.927429games-slot-gacor-2023.HTML
https://ckan.pontianak.go.id/uploads/user/2023-05-31-090404.258933info-link-slot-gacor.html
https://ckan.pontianak.go.id/uploads/user/2023-05-31-090624.140151Judi-Game-Slot-Gacor-2023-Terpercaya.html
https://ckan.pontianak.go.id/uploads/user/2023-05-31-090700.718997Judi-Slot-Gacor-2023.html
https://ckan.pontianak.go.id/uploads/user/2023-05-31-090727.256547Link-Judi-Slot-Gacor-2023.html
https://ckan.pontianak.go.id/uploads/user/2023-05-31-090753.167727situs-slot88.html
https://ckan.pontianak.go.id/uploads/user/2023-05-31-090833.985805slot-bank-neo.html
https://ckan.pontianak.go.id/uploads/user/2023-05-31-090919.394837Slot-Server-Thailand.html
https://ckan.pontianak.go.id/uploads/user/2023-05-31-091006.450312link-slot-thailand.html
https://ckan.pontianak.go.id/uploads/user/2023-05-31-091049.055421slot-thailand.html
https://ckan.pontianak.go.id/uploads/user/2023-05-31091144.283103SLOT88.html
https://ckan.pontianak.go.id/uploads/user/2023-05-31-091232.145826slotbankjago.html
https://ckan.pontianak.go.id/uploads/user/2023-05-31-091317.907872slotbca.html
https://ckan.pontianak.go.id/uploads/user/2023-05-31-091358.685127slot-dana-5000.html
https://ckan.pontianak.go.id/uploads/user/2023-05-31-091434.729680slotgacordana.html
https://ckan.pontianak.go.id/uploads/user/2023-05-31-091505.537051Toto-Slot-Gacor.html
https://ckan.pontianak.go.id/uploads/user/2023-05-31-091532.729702toto-slot.html
https://ckan.pontianak.go.id/uploads/user/2023-05-31-093014.791704link-slot-dana.html
https://ckan.pontianak.go.id/uploads/user/2023-05-31-093049.040638link-slot303.html
https://ckan.pontianak.go.id/uploads/user/2023-05-31-093149.425486slot-303.html
https://ckan.pontianak.go.id/uploads/user/2023-05-31-093218.627317slot-bca.html
https://ckan.pontianak.go.id/uploads/user/2023-05-31-093244.359700slot-bri.html
https://ckan.pontianak.go.id/uploads/user/2023-05-31-093310.284743slot-gacor-2022.html
https://ckan.pontianak.go.id/uploads/user/2023-05-31-093341.913493slot-gacor-maxwin-2022.html
https://ckan.pontianak.go.id/uploads/user/2023-05-31-093412.497451slot-kamboja.html
https://ckan.pontianak.go.id/uploads/user/2023-05-31-093436.169072slot-online-terpercaya.html
https://ckan.pontianak.go.id/uploads/user/2023-05-31-093503.623458slot88-gacor.html
https://ckan.pontianak.go.id/uploads/user/2023-05-31-093531.761325slot303.html
https://ckan.pontianak.go.id/uploads/user/2023-05-31-094849.987733login-slot-303.html
https://perpustakaan.uniflor.ac.id/assets/slot303/
https://gpst2030.org/
https://atekokolli.org/
http://fehh.unw.ac.id/assets/slot-bca/
http://fehh.unw.ac.id/assets/upload/akun-pro-thailand/
http://fehh.unw.ac.id/assets/images/slot-server-thailand/
https://bemfkip.unsil.ac.id/wp-content/uploads/akun-pro-thailand/
https://bemfkip.unsil.ac.id/wp-content/uploads/2023/

신고가 접수되어 자동으로 블라인드 된 댓글입니다. 원문을 보시려면 를 클릭하세요.

신고가 접수되어 자동으로 블라인드 된 댓글입니다. 원문을 보시려면 를 클릭하세요.

신고가 접수되어 자동으로 블라인드 된 댓글입니다. 원문을 보시려면 를 클릭하세요.

신고가 접수되어 자동으로 블라인드 된 댓글입니다. 원문을 보시려면 를 클릭하세요.

신고가 접수되어 자동으로 블라인드 된 댓글입니다. 원문을 보시려면 를 클릭하세요.

https://yokmasuk.github.io/publish/Menyelidiki-Scatter-Hitam-Mahjong-Ways.html
https://yokmasuk.github.io/publish/Langkah-bermain-mesin-slot-pragmatic-tanpa-sakit-kepala.html
https://yokmasuk.github.io/publish/Duel-Sengit-di-Mahjong-ways-1-Dan-2.html
https://yokmasuk.github.io/publish/Seorang-Kakek-Zeus-Tertipu.html
https://yokmasuk.github.io/publish/Orang-Pintar-Indonesi-Mencari-3-Cara-Mengalahkan-Mahjong-Ways.html
https://yokmasuk.github.io/publish/Viral!-Katak-Bhizer-Lari-Ke-Kamboja-Untuk-Melawan-Sweet Bonanza-1000.html
https://yokmasuk.github.io/publish/Ayah-Jual-Petir-Kakek-Zeus-x15000.html
https://yokmasuk.github.io/publish/3-Scatter-Hitam-Di-Mahjong-Ways.html    


https://yokmasuk.github.io/berita/Rumus-Mengendalikan-Naga-Mahjong-Ways.html
https://yokmasuk.github.io/berita/Panduan-bermain-game-online-Starlight-Princess-1000.html
https://yokmasuk.github.io/berita/Membobol-Game-Online-Gates-Olympus.html
https://yokmasuk.github.io/berita/Inilah-4-Pola-Deretan-Teratas Gates-Olympus.html
https://yokmasuk.github.io/berita/Ternyata-Begini-Rahasianya-Pg-Soft.html

https://ind0kita.github.io/news/Game-Cuan-Raffi-Ahmad-x15.000-Mania-Bisa-Menghasilkan-1M.html
https://ind0kita.github.io/news/Mengenal-Mahjong-Ways-Kombinasi-Unik-Antara-Pola-jitu-dan-Pola-prediksi.html
https://ind0kita.github.io/news/Panduan-Mahir-Bermain-Mahjong-Ways.html
https://ind0kita.github.io/news/Penasaran-Dengan-Trik-Mahjong-Ways.html
https://ind0kita.github.io/news/Rahasia-Rojan-Menang-di-Mahjong-Ways.html

<a href="https://clalontechs.co.tz/">slot toto</a>
<a href="https://lsamaaceh.com/">bacansports</a>
<a href="https://pmb.org.br/">slot toto</a>
<a href="https://eezycode.com/">Slot toto</a>
<a href="https://london.edu.au/">toto slot</a>
<a href="https://beandgo.io/">toto slot</a>

댓글 작성

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

로그인하기

개발강좌

프로그램 강좌 :
1. 유창화님의 썸네일, 정규표현식, 이미지관련 강좌
2. Sphinx 검색엔진을 이용한 도로명 주소 검색 시스템 구축
번호 분류 제목 글쓴이 날짜 조회
108 그누보드5 2주 전 조회 34
107 그누보드5
[그누보드5]
4개월 전 조회 157
106 그누보드5 5개월 전 조회 395
105 그누보드5 6개월 전 조회 372
104 그누보드5 7개월 전 조회 310
103 그누보드5 2년 전 조회 1,283
102 그누보드5 2년 전 조회 942
101 그누보드5 2년 전 조회 1,036
100 그누보드5 2년 전 조회 2,338
99 그누보드5 2년 전 조회 870
98 정규표현식 2년 전 조회 1,170
97 그누보드5 3년 전 조회 2,357
96 그누보드5 3년 전 조회 2,742
95 그누보드5 3년 전 조회 3,281
94 그누보드5 3년 전 조회 3,656
93 그누보드5 3년 전 조회 2,893
92 그누보드5 5년 전 조회 5,748
91 그누보드5 5년 전 조회 3,404
90 그누보드5 7년 전 조회 8,303
89 정규표현식 7년 전 조회 8,339
88 그누보드5 7년 전 조회 4,619
87 정규표현식 8년 전 조회 7,442
86 그누보드5 8년 전 조회 5,485
85 정규표현식 8년 전 조회 4,129
84 정규표현식 8년 전 조회 3,736
83 정규표현식 8년 전 조회 3,406
82 정규표현식 8년 전 조회 3,630
81 이미지관련 8년 전 조회 8,491
80 이미지관련 8년 전 조회 6,704
79 정규표현식 8년 전 조회 4.7만
🐛 버그신고