그누보드 최신버전 (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.'&url='.urlencode(G5_BBS_URL.'/board.php?bo_table='.$bo_table.'&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.'&url='.urlencode(G5_BBS_URL.'/board.php?bo_table='.$bo_table.'&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&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 ($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.'&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 ($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.'&url='.urlencode(G5_BBS_URL.'/board.php?bo_table='.$bo_table.'&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.'&url='.urlencode(G5_BBS_URL.'/board.php?bo_table='.$bo_table.'&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.'&url='.urlencode(G5_BBS_URL.'/board.php?bo_table='.$bo_table.'&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);
}
}
게시판 환경설정에서 본인확인사용 설정에 사용안함 외의 값이 설정되어 있을때 동작합니다. 사용안함은 빈값입니다.
부가서비스인 아이폰 본인인증이나 핸드폰 본인인증을 사용할경우 위의 설정이 활성화됩니다.
댓글 13개
solsu1
10년 전
술술 넘어가는 강좌 항상 고맙습니다!
10년 전
네 고맙습니다
10년 전
수고하셨습니다.
10년 전
네 고맙습니다.
doremi
10년 전
감사합니다.
우주인들이 사용하는 외계어처럼 보이던 글이 이제는 지구인들이 사용하는 지구어처럼 보이기 시작합니다. 곧 한국인이 사용하는 한국어처럼 느껴져야 할 터인데... 늘 수고가 많으십니다.
우주인들이 사용하는 외계어처럼 보이던 글이 이제는 지구인들이 사용하는 지구어처럼 보이기 시작합니다. 곧 한국인이 사용하는 한국어처럼 느껴져야 할 터인데... 늘 수고가 많으십니다.
10년 전
네에 ㅎㅎ
좋은 현상이네요
고맙습니다
좋은 현상이네요
고맙습니다
iwebstory
10년 전
선추천 후감상
10년 전
고객님 다들 그렇게 하십니다....
고맙습니다.
고맙습니다.
오늘도내일도
10년 전
처음으로 유창화님의 강좌를 보고 있습니다
앞으로도 꾸준히 보도록 노력하겠습니다
좋은 강좌 만들어 주셔서 정말 감사합니다
앞으로도 꾸준히 보도록 노력하겠습니다
좋은 강좌 만들어 주셔서 정말 감사합니다
10년 전
네에 고맙습니다.
익명닉네임
10년 전
선감상 후추천(응?)
10년 전
유익한 강좌 감사합니다..^^
너모야민쯩까
9년 전
인자 변수 배열 ...초보가 이해하긴 조금 어렵지만
아무튼 좋은 강좌입니다~
아무튼 좋은 강좌입니다~
게시판 목록
프로그램
| 번호 | 제목 | 글쓴이 | 날짜 | 조회 |
|---|---|---|---|---|
| 7830 | 9년 전 | 378 | ||
| 7829 |
|
9년 전 | 554 | |
| 7828 | 9년 전 | 489 | ||
| 7827 | 9년 전 | 373 | ||
| 7826 | 9년 전 | 381 | ||
| 7825 | 9년 전 | 435 | ||
| 7824 | 9년 전 | 417 | ||
| 7823 | 9년 전 | 324 | ||
| 7822 | 9년 전 | 318 | ||
| 7821 | 9년 전 | 262 | ||
| 7820 | 9년 전 | 318 | ||
| 7819 |
|
9년 전 | 721 | |
| 7818 | 10년 전 | 335 | ||
| 7817 | 10년 전 | 454 | ||
| 7816 | 10년 전 | 357 | ||
| 7815 | 10년 전 | 561 | ||
| 7814 | 10년 전 | 386 | ||
| 7813 | 10년 전 | 326 | ||
| 7812 | 10년 전 | 345 | ||
| 7811 | 10년 전 | 362 | ||
| 7810 | 10년 전 | 494 | ||
| 7809 | 10년 전 | 436 | ||
| 7808 | 10년 전 | 300 | ||
| 7807 | 10년 전 | 361 | ||
| 7806 |
프로그래머7
|
10년 전 | 1307 | |
| 7805 | 10년 전 | 1218 | ||
| 7804 |
zahir1312
|
10년 전 | 744 | |
| 7803 |
|
10년 전 | 1345 | |
| 7802 | 10년 전 | 402 | ||
| 7801 | 10년 전 | 829 | ||
| 7800 | 10년 전 | 1049 | ||
| 7799 | 10년 전 | 506 | ||
| 7798 | 10년 전 | 452 | ||
| 7797 | 10년 전 | 452 | ||
| 7796 | 10년 전 | 303 | ||
| 7795 | 10년 전 | 455 | ||
| 7794 | 10년 전 | 478 | ||
| 7793 | 10년 전 | 998 | ||
| 7792 | 10년 전 | 408 | ||
| 7791 | 10년 전 | 489 | ||
| 7790 | 10년 전 | 454 | ||
| 7789 |
fbastore
|
10년 전 | 1403 | |
| 7788 | 10년 전 | 487 | ||
| 7787 | 10년 전 | 353 | ||
| 7786 | 10년 전 | 505 | ||
| 7785 | 10년 전 | 521 | ||
| 7784 | 10년 전 | 591 | ||
| 7783 | 10년 전 | 392 | ||
| 7782 | 10년 전 | 448 | ||
| 7781 | 10년 전 | 850 | ||
| 7780 | 10년 전 | 778 | ||
| 7779 | 10년 전 | 747 | ||
| 7778 | 10년 전 | 316 | ||
| 7777 | 10년 전 | 398 | ||
| 7776 | 10년 전 | 405 | ||
| 7775 | 10년 전 | 339 | ||
| 7774 | 10년 전 | 602 | ||
| 7773 | 10년 전 | 322 | ||
| 7772 | 10년 전 | 668 | ||
| 7771 | 10년 전 | 328 | ||
| 7770 | 10년 전 | 612 | ||
| 7769 | 10년 전 | 331 | ||
| 7768 | 10년 전 | 548 | ||
| 7767 | 10년 전 | 1116 | ||
| 7766 | 10년 전 | 444 | ||
| 7765 | 10년 전 | 477 | ||
| 7764 |
잘살아보자
|
10년 전 | 326 | |
| 7763 |
|
10년 전 | 1400 | |
| 7762 |
Tosea
|
10년 전 | 1018 | |
| 7761 | 10년 전 | 614 | ||
| 7760 |
잘살아보자
|
10년 전 | 603 | |
| 7759 |
잘살아보자
|
10년 전 | 418 | |
| 7758 |
잘살아보자
|
10년 전 | 532 | |
| 7757 | 10년 전 | 1181 | ||
| 7756 |
ITBANK
|
10년 전 | 1217 | |
| 7755 | 10년 전 | 1895 | ||
| 7754 | 10년 전 | 998 | ||
| 7753 | 10년 전 | 843 | ||
| 7752 | 10년 전 | 1349 | ||
| 7751 |
잘살아보자
|
10년 전 | 472 | |
| 7750 |
잘살아보자
|
10년 전 | 441 | |
| 7749 |
잘살아보자
|
10년 전 | 439 | |
| 7748 |
잘살아보자
|
10년 전 | 421 | |
| 7747 |
잘살아보자
|
10년 전 | 509 | |
| 7746 |
잘살아보자
|
10년 전 | 633 | |
| 7745 |
잘살아보자
|
10년 전 | 876 | |
| 7744 |
잘살아보자
|
10년 전 | 387 | |
| 7743 | 10년 전 | 912 | ||
| 7742 |
starbros
|
10년 전 | 786 | |
| 7741 |
잘살아보자
|
10년 전 | 604 | |
| 7740 |
잘살아보자
|
10년 전 | 479 | |
| 7739 |
잘살아보자
|
10년 전 | 434 | |
| 7738 |
잘살아보자
|
10년 전 | 488 | |
| 7737 |
잘살아보자
|
10년 전 | 448 | |
| 7736 |
잘살아보자
|
10년 전 | 466 | |
| 7735 |
잘살아보자
|
10년 전 | 801 | |
| 7734 |
잘살아보자
|
10년 전 | 394 | |
| 7733 |
잘살아보자
|
10년 전 | 494 | |
| 7732 |
잘살아보자
|
10년 전 | 650 | |
| 7731 |
잘살아보자
|
10년 전 | 579 |
댓글 작성
댓글을 작성하시려면 로그인이 필요합니다.
로그인하기