diff --git a/adm/config_form.php b/adm/config_form.php index 1c18bb65b..d92f348c3 100644 --- a/adm/config_form.php +++ b/adm/config_form.php @@ -25,14 +25,17 @@ if (!isset($config['cf_mobile_new_skin'])) { ADD `cf_mobile_member_skin` VARCHAR(255) NOT NULL AFTER `cf_mobile_connect_skin` ", true); } -if(!isset($config['cf_gcaptcha_mp3'])) { +if (isset($config['cf_gcaptcha_mp3'])) { sql_query(" ALTER TABLE `{$g5['config_table']}` - ADD `cf_gcaptcha_mp3` VARCHAR(255) NOT NULL DEFAULT '' AFTER `cf_mobile_member_skin` ", true); + CHANGE `cf_gcaptcha_mp3` `cf_captcha_mp3` VARCHAR(255) NOT NULL DEFAULT '' ", true); +} else if (!isset($config['cf_captcha_mp3'])) { + sql_query(" ALTER TABLE `{$g5['config_table']}` + ADD `cf_captcha_mp3` VARCHAR(255) NOT NULL DEFAULT '' AFTER `cf_mobile_member_skin` ", true); } if(!isset($config['cf_editor'])) { sql_query(" ALTER TABLE `{$g5['config_table']}` - ADD `cf_editor` VARCHAR(255) NOT NULL DEFAULT '' AFTER `cf_gcaptcha_mp3` ", true); + ADD `cf_editor` VARCHAR(255) NOT NULL DEFAULT '' AFTER `cf_captcha_mp3` ", true); } if(!isset($config['cf_googl_shorturl_apikey'])) { diff --git a/adm/config_form_update.php b/adm/config_form_update.php index eb80e915e..b7a1bbef7 100644 --- a/adm/config_form_update.php +++ b/adm/config_form_update.php @@ -107,7 +107,7 @@ $sql = " update {$g5['config_table']} cf_mobile_search_skin = '{$_POST['cf_mobile_search_skin']}', cf_mobile_connect_skin = '{$_POST['cf_mobile_connect_skin']}', cf_mobile_member_skin = '{$_POST['cf_mobile_member_skin']}', - cf_gcaptcha_mp3 = '{$_POST['cf_gcaptcha_mp3']}', + cf_captcha_mp3 = '{$_POST['cf_captcha_mp3']}', cf_editor = '{$_POST['cf_editor']}', cf_cert_use = '{$_POST['cf_cert_use']}', cf_cert_ipin = '{$_POST['cf_cert_ipin']}', diff --git a/bbs/formmail.php b/bbs/formmail.php index ea18b8211..4b2d24aff 100644 --- a/bbs/formmail.php +++ b/bbs/formmail.php @@ -1,6 +1,6 @@
-

+

@@ -54,47 +54,50 @@ for ($i=0; $row=sql_fetch_array($result); $i++) - - - - - - - - - - 현재게시판'; - $atc_bg = 'copymove_currentbg'; - } - ?> - - - - - - -
할 게시판을 한개 이상 선택하여 주십시오.
- - - 게시판
- - - - -
-
+
+ + + + + + + + + + 현재게시판'; + $atc_bg = 'copymove_currentbg'; + } + ?> + + + + + + +
할 게시판을 한개 이상 선택하여 주십시오.
+ + + 게시판
+ + + + +
+
+ +
@@ -103,9 +106,9 @@ for ($i=0; $row=sql_fetch_array($result); $i++) - - - - +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
자동등록방지
내용 + 글자 + + +
+
diff --git a/mobile/skin/board/basic/write.skin.php b/mobile/skin/board/basic/write.skin.php index d0eb11025..9e2ccc367 100644 --- a/mobile/skin/board/basic/write.skin.php +++ b/mobile/skin/board/basic/write.skin.php @@ -4,164 +4,164 @@ if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가 -

+
+

-
- - - - - - - - - - -" onsubmit="return fwrite_submit(this);" method="post" enctype="multipart/form-data" autocomplete="off"> + + + + + + + + + + + '.PHP_EOL.''; - } + $option_hidden = ''; + if ($is_notice || $is_html || $is_secret || $is_mail) { + $option = ''; + if ($is_notice) { + $option .= PHP_EOL.''.PHP_EOL.''; + } - if ($is_html) { - if ($is_dhtml_editor) { - $option_hidden .= ''; - } else { - $option .= PHP_EOL.''.PHP_EOL.''; + if ($is_html) { + if ($is_dhtml_editor) { + $option_hidden .= ''; + } else { + $option .= PHP_EOL.''.PHP_EOL.''; + } + } + + if ($is_secret) { + if ($is_admin || $is_secret==1) { + $option .= PHP_EOL.''.PHP_EOL.''; + } else { + $option_hidden .= ''; + } + } + + if ($is_mail) { + $option .= PHP_EOL.''.PHP_EOL.''; } } - if ($is_secret) { - if ($is_admin || $is_secret==1) { - $option .= PHP_EOL.''.PHP_EOL.''; - } else { - $option_hidden .= ''; - } - } + echo $option_hidden; + ?> +
+ + + + + + + + + - if ($is_mail) { - $option .= PHP_EOL.''.PHP_EOL.''; - } -} + + + + + + -echo $option_hidden; -?> -
-
class="frm_input " maxlength="20">
- - - - - - - + + + + + + - - - - - - + + + + + + - - - - - - + + + + + + - - - - - - + + + + + + - - - - - - + + + + - - - - - - + + + + - - - - + + + + + + - - - - + + + + + + - - - - - - + + + + + + - - - - - - + +
class="frm_input " maxlength="20">
옵션
+ +
옵션
- -
+ + +

이 게시판은 최소 글자 이상, 최대 글자 이하까지 글을 쓰실 수 있습니다.

+ + + + +
글자
+ +
" id="wr_link" class="frm_input" size="50">
- - -

이 게시판은 최소 글자 이상, 최대 글자 이하까지 글을 쓰실 수 있습니다.

- - - - -
글자
- -
파일 # + + + + + + + +
" id="wr_link" class="frm_input" size="50">
자동등록방지 + +
파일 # - - - - - - - -
+
- - - 자동등록방지 - - - - - - - - -
- -
-

- 작성하신 내용을 제출하시려면 글쓰기 버튼을, 작성을 취소하고 목록으로 돌아가시려면 취소 링크를 누르세요. -

- - 취소 -
- +
+ + 취소 +
+ + -

+

목록

diff --git a/mobile/skin/board/gallery/style.css b/mobile/skin/board/gallery/style.css index f02e58a3d..7720442b5 100644 --- a/mobile/skin/board/gallery/style.css +++ b/mobile/skin/board/gallery/style.css @@ -28,35 +28,39 @@ /* 기본테이블 */ /* 읽기 내 테이블 */ -#bo_v .basic_tbl {} -#bo_v .basic_tbl caption {} -#bo_v .basic_tbl thead th {} -#bo_v .basic_tbl thead a {} -#bo_v .basic_tbl thead th input {} /* middle 로 하면 게시판 읽기에서 목록 사용시 체크박스 라인 깨짐 */ -#bo_v .basic_tbl tfoot th {} -#bo_v .basic_tbl tfoot td {} -#bo_v .basic_tbl tbody th {} -#bo_v .basic_tbl td {} -#bo_v .basic_tbl a {} -#bo_v .bo_sideview td {} /* 사이드뷰 사용하는 테이블 셀 패딩값 */ +#bo_v .tbl_head01 {} +#bo_v .tbl_head01 caption {} +#bo_v .tbl_head01 thead th {} +#bo_v .tbl_head01 thead a {} +#bo_v .tbl_head01 thead th input {} /* middle 로 하면 게시판 읽기에서 목록 사용시 체크박스 라인 깨짐 */ +#bo_v .tbl_head01 tfoot th {} +#bo_v .tbl_head01 tfoot td {} +#bo_v .tbl_head01 tbody th {} +#bo_v .tbl_head01 td {} +#bo_v .tbl_head01 a {} #bo_v td.empty_table {} /* 쓰기 테이블 */ -#bo_w .frm_tbl {} -#bo_w .frm_tbl caption {} -#bo_w .frm_tbl th {} -#bo_w .frm_tbl td {} -#bo_w .frm_tbl textarea, #bo_w .frm_input {} -#bo_w .frm_tbl textarea {} +#bo_w table {} +#bo_w caption {} #bo_w .frm_address {} #bo_w .frm_file {} -#bo_w .frm_tbl #captcha {} -#bo_w .frm_tbl #captcha input {} -#bo_w .frm_tbl a {} - #bo_w .frm_info {} +#bo_w .tbl_frm01 {} +#bo_w .tbl_frm01 caption {} +#bo_w .tbl_frm01 th {} +#bo_w .tbl_frm01 td {} +#bo_w .tbl_frm01 textarea, #bo_w .frm_input {} +#bo_w .tbl_frm01 textarea {} +/* +#bo_w .tbl_frm01 #captcha {} +#bo_w .tbl_frm01 #captcha input {} +*/ +#bo_w .tbl_frm01 a {} + #bo_w .required {} /* 필수입력 */ +#bo_w textarea.required {} /* ### 기본 스타일 커스터마이징 끝 ### */ @@ -65,8 +69,6 @@ #bo_gall #gall_ul {margin:1em 0 0;padding:0 1em;list-style:none} #bo_gall #gall_ul:after {display:block;visibility:hidden;clear:both;content:""} -#bo_list_title {padding:0 1em} - #bo_cate h2 {width:0;height:0;font-size:0;line-height:0;overflow:hidden} #bo_cate ul {margin:0.5em 1em;padding-left:1px;zoom:1} #bo_cate ul:after {display:block;visibility:hidden;clear:both;content:""} diff --git a/mobile/skin/board/gallery/view_comment.skin.php b/mobile/skin/board/gallery/view_comment.skin.php index 75273222b..72fa59d90 100644 --- a/mobile/skin/board/gallery/view_comment.skin.php +++ b/mobile/skin/board/gallery/view_comment.skin.php @@ -25,7 +25,7 @@ var char_max = parseInt(); // 최대

님의 댓글

- 댓글의 댓글 + 댓글의 댓글 아이피 @@ -46,7 +46,7 @@ var char_max = parseInt(); // 최대 - " id="secret_comment_"> + "> ); // 최대
- -
-

- 작성하신 내용을 제출하시려면 글쓰기 버튼을, 작성을 취소하고 목록으로 돌아가시려면 취소 링크를 누르세요. -

- - 취소 -
- +
+ + 취소 +
+ + @@ -20,234 +22,237 @@ if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가 - - - - - - - - - - - - - - -
사이트 이용정보 입력
- 영문자, 숫자, _ 만 입력 가능. 최소 3자이상 입력하세요. - > - -
>
>
+
+ + + + + + + + + + + + + + +
사이트 이용정보 입력
+ 영문자, 숫자, _ 만 입력 가능. 최소 3자이상 입력하세요. + > + +
>
>
+
- - - - - + + + + +
개인정보 입력
- - 아이핀 본인확인 후에는 이름이 자동 입력되고 휴대폰 본인확인 후에는 이름과 휴대폰번호가 자동 입력되어 수동으로 입력할수 없게 됩니다. - - class="frm_input nospace " size="10"> - 아이핀 본인확인'.PHP_EOL; - if($config['cf_cert_hp']) - echo ''.PHP_EOL; +
+ + + + + - - - - - - - + echo ''.PHP_EOL; + } + ?> + +
+ 본인확인성인인증 완료 +
+ + + + + + + + + - - - - + + + + - - - - - - + + + + + + - - - - - - + + + + + + - - - - - - + + + + + + - - - - - - -
개인정보 입력
+ + 아이핀 본인확인 후에는 이름이 자동 입력되고 휴대폰 본인확인 후에는 이름과 휴대폰번호가 자동 입력되어 수동으로 입력할수 없게 됩니다. + + class="frm_input nospace " size="10"> + 아이핀 본인확인'.PHP_EOL; + if($config['cf_cert_hp']) + echo ''.PHP_EOL; - echo ''.PHP_EOL; - } - ?> - -
- 본인확인성인인증 완료 -
- -
- - 공백없이 한글,영문,숫자만 입력 가능 (한글2자, 영문4자 이상)
- 별명을 바꾸시면 앞으로 일 이내에는 변경 할 수 없습니다. -
- - - -
+ + 공백없이 한글,영문,숫자만 입력 가능 (한글2자, 영문4자 이상)
+ 별명을 바꾸시면 앞으로 일 이내에는 변경 할 수 없습니다. +
+ + + +
- - - - - - - - -
+ + + + + + + + +
" maxlength="255" >
" maxlength="255" >
" maxlength="20" >
" maxlength="20" >
- class="frm_input " maxlength="20"> - - - -
+ class="frm_input " maxlength="20"> + + + +
- 주소 - 필수 - - - class="frm_input " size="3" maxlength="3"> - - - - class="frm_input " size="3" maxlength="3"> - - - class="frm_input frm_address " size="50"> - - class="frm_input frm_address " size="50"> - -
+ +
+ 주소 + 필수 + + + class="frm_input " size="3" maxlength="3"> + - + + class="frm_input " size="3" maxlength="3"> + + + class="frm_input frm_address " size="50"> + + class="frm_input frm_address " size="50"> + +
+
- - - - - - - - +
+
기타 개인설정
+ + + + + + + - - - - - - + + + + + + - = $config['cf_icon_level']) { ?> - - - - - + = $config['cf_icon_level']) { ?> + + + + + - - - - + + + + - - - - - - + + + + + + - - - - - - - - - - - + + + + + + + + + + + - - - - - - + + + + + + - - - - -
기타 개인설정
- - 이미지 크기는 가로 픽셀, 세로 픽셀 이하로 해주세요.
- gif만 가능하며 용량 바이트 이하만 등록됩니다. -
- - - - - -
+ + 이미지 크기는 가로 픽셀, 세로 픽셀 이하로 해주세요.
+ gif만 가능하며 용량 바이트 이하만 등록됩니다. +
+ + + + + +
- > - 정보 메일을 받겠습니다. -
+ > + 정보 메일을 받겠습니다. +
- > - 휴대폰 문자메세지를 받겠습니다. -
+ > + 휴대폰 문자메세지를 받겠습니다. +
- - 정보공개를 바꾸시면 앞으로 일 이내에는 변경이 안됩니다. - - - > - 다른분들이 나의 정보를 볼 수 있도록 합니다. -
정보공개 - - 정보공개는 수정후 일 이내, 까지는 변경이 안됩니다.
- 이렇게 하는 이유는 잦은 정보공개 수정으로 인하여 쪽지를 보낸 후 받지 않는 경우를 막기 위해서 입니다. -
- -
+ + 정보공개를 바꾸시면 앞으로 일 이내에는 변경이 안됩니다. + + + > + 다른분들이 나의 정보를 볼 수 있도록 합니다. +
정보공개 + + 정보공개는 수정후 일 이내, 까지는 변경이 안됩니다.
+ 이렇게 하는 이유는 잦은 정보공개 수정으로 인하여 쪽지를 보낸 후 받지 않는 경우를 막기 위해서 입니다. +
+ +
자동등록방지
+ + 자동등록방지 + + + +
-

- 작성하신 내용을 제출하시려면 버튼을, 작성을 취소하고 목록으로 돌아가시려면 취소 링크를 누르세요. -

취소
diff --git a/mobile/skin/member/basic/register_result.skin.php b/mobile/skin/member/basic/register_result.skin.php index 4e807e01c..c3f57775d 100644 --- a/mobile/skin/member/basic/register_result.skin.php +++ b/mobile/skin/member/basic/register_result.skin.php @@ -6,7 +6,7 @@ if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가
- +

님의 회원가입을 진심으로 축하합니다.
@@ -17,7 +17,7 @@ if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가 회원 가입 시 입력하신 이메일 주소로 인증메일이 발송되었습니다.
발송된 인증메일을 확인하신 후 인증처리를 하시면 사이트를 원활하게 이용하실 수 있습니다.

-
+
아이디
이메일 주소 diff --git a/mobile/skin/member/basic/scrap.skin.php b/mobile/skin/member/basic/scrap.skin.php index ba281252f..20558eb1e 100644 --- a/mobile/skin/member/basic/scrap.skin.php +++ b/mobile/skin/member/basic/scrap.skin.php @@ -5,33 +5,35 @@ if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가
-

+

- - - - - - - - - - - - - - - - - +
+
스크랩 목록
게시판제목삭제
삭제
+ + + + + + + + + + + + + + + + - "; ?> - -
스크랩 목록
게시판제목삭제
삭제
자료가 없습니다.
+ 자료가 없습니다."; ?> + + +
-
+
diff --git a/mobile/skin/member/basic/scrap_popin.skin.php b/mobile/skin/member/basic/scrap_popin.skin.php index c9993d67a..1f9d08097 100644 --- a/mobile/skin/member/basic/scrap_popin.skin.php +++ b/mobile/skin/member/basic/scrap_popin.skin.php @@ -5,31 +5,33 @@ if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가
-

스크랩하기

+

스크랩하기

- - - - - - - - - - - - -
제목 확인 및 댓글 쓰기
제목
+
+ + + + + + + + + + + + +
제목 확인 및 댓글 쓰기
제목
+
-

+

스크랩을 하시면서 감사 혹은 격려의 댓글을 남기실 수 있습니다.

-
+
diff --git a/mobile/skin/member/basic/style.css b/mobile/skin/member/basic/style.css index 49eeae5ea..79d435718 100644 --- a/mobile/skin/member/basic/style.css +++ b/mobile/skin/member/basic/style.css @@ -12,10 +12,10 @@ .mbskin .btn_submit {} .mbskin .btn_cancel {} .mbskin .btn_frmline {} /* 우편번호검색버튼 등 */ -.mbskin .btn_win {} /* 새창용 */ -.mbskin .btn_win a {} -.mbskin .btn_win button {} -.mbskin .btn_win input {} +.mbskin .win_btn {} /* 새창용 */ +.mbskin .win_btn a {} +.mbskin .win_btn button {} +.mbskin .win_btn input {} /* 게시판용 버튼 */ .mbskin a.btn_b01 {} .mbskin a.btn_b01:focus, .mbskin .btn_b01:hover {} @@ -25,35 +25,39 @@ .mbskin a.btn_admin:focus, .mbskin a.btn_admin:hover {} /* 기본테이블 */ -.mbskin .basic_tbl {} -.mbskin .basic_tbl caption {} -.mbskin .basic_tbl thead th {} -.mbskin .basic_tbl thead a {} -.mbskin .basic_tbl thead th input {} /* middle 로 하면 게시판 읽기에서 목록 사용시 체크박스 라인 깨짐 */ -.mbskin .basic_tbl tfoot th {} -.mbskin .basic_tbl tfoot td {} -.mbskin .basic_tbl tbody th {} -.mbskin .basic_tbl td {} -.mbskin .basic_tbl a {} -.mbskin .bo_sideview td {} /* 사이드뷰 사용하는 테이블 셀 패딩값 */ +.mbskin .tbl_head01 {} +.mbskin .tbl_head01 caption {} +.mbskin .tbl_head01 thead th {} +.mbskin .tbl_head01 thead a {} +.mbskin .tbl_head01 thead th input {} /* middle 로 하면 게시판 읽기에서 목록 사용시 체크박스 라인 깨짐 */ +.mbskin .tbl_head01 tfoot th {} +.mbskin .tbl_head01 tfoot td {} +.mbskin .tbl_head01 tbody th {} +.mbskin .tbl_head01 td {} +.mbskin .tbl_head01 a {} .mbskin td.empty_table {} /* 폼 테이블 */ -.mbskin .frm_tbl {} -.mbskin .frm_tbl caption {} -.mbskin .frm_tbl th {} -.mbskin .frm_tbl td {} -.mbskin .frm_tbl textarea, .mbskin .frm_input {} -.mbskin .frm_tbl textarea {} -.mbskin .frm_address {} -.mbskin .frm_file {} -.mbskin .frm_tbl #captcha {} -.mbskin .frm_tbl #captcha input {} -.mbskin .frm_tbl a {} +.mb_skin table {} +.mb_skin caption {} +.mb_skin .frm_info {} +.mb_skin .frm_address {} +.mb_skin .frm_file {} -.mbskin .frm_info {} +.mbskin .tbl_frm01 {} +.mbskin .tbl_frm01 caption {} +.mbskin .tbl_frm01 th {} +.mbskin .tbl_frm01 td {} +.mbskin .tbl_frm01 textarea, .mbskin .frm_input {} +.mbskin .tbl_frm01 textarea {} +/* +.mbskin .tbl_frm01 #captcha {} +.mbskin .tbl_frm01 #captcha input {} +*/ +.mbskin .tbl_frm01 a {} .mbskin .required {} /* 필수입력 */ +.mbskin textarea.required {} /* 테이블 항목별 정의 */ .mbskin .td_board {} @@ -74,26 +78,26 @@ #fregister section {padding:1.5em;border-bottom:1px solid #eee;background:#fafafa} #fregister h2 {margin:0 0 1.5em;text-align:center} #fregister textarea {display:block;margin-bottom:1em;padding:0.3em;width:99%;height:150px;border:1px solid #cfded8;background:#f7f7f7} -#fregister textarea:focus {background:#21272e;color:#fff} .fregister_agree {padding:1em 0 0;text-align:right} .fregister_agree label {display:inline-block;margin-right:0.3em} #fregister p {color:#e8180c;text-align:center} #fregister .btn_confirm {margin:1.5em 0} /* 회원가입 입력 */ -#fregisterform textarea {height:50px} +#fregisterform #reg_mb_email, #fregisterform .frm_address {width:100%} +#fregisterform textarea {width:100%;height:50px} /* 회원가입 완료 */ #reg_result {padding:4em 1em 0} -#reg_result_logo {margin-bottom:50px;text-align:center} -#reg_result_email {padding:10px 50px;border-top:1px solid #eee;border-bottom:1px solid #eee;background:#fff;line-height:2em} -#reg_result_email span {display:inline-block;width:150px} -#reg_result_email strong {color:#e8180c;font-size:1.2em} +#reg_result #result_logo {margin-bottom:50px;text-align:center} +#reg_result #result_email {padding:10px 50px;border-top:1px solid #eee;border-bottom:1px solid #eee;background:#fff;line-height:2em} +#reg_result #result_email span {display:inline-block;width:150px} +#reg_result #result_email strong {color:#e8180c;font-size:1.2em} #reg_result .btn_confirm {margin:50px 0} /* 아이디/패스워드 찾기 */ -#find_info_fs {margin:0 auto 1em;padding:1em;border-bottom:1px solid #eee} -#find_info_fs #mb_email {width:100%} +#find_info #info_fs {margin:0 auto 1em;padding:1em;border-bottom:1px solid #eee} +#find_info #info_fs #mb_email {width:100%} #find_info #captcha {margin:0 0 1em;padding:0 1em 1em} #find_info #captcha input {margin-left:0.3em} diff --git a/mobile/skin/member/basic/zip.skin.php b/mobile/skin/member/basic/zip.skin.php index c479e7ec6..b8076583f 100644 --- a/mobile/skin/member/basic/zip.skin.php +++ b/mobile/skin/member/basic/zip.skin.php @@ -5,7 +5,7 @@ if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가
-

+

@@ -39,7 +39,7 @@ if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가

검색결과가 끝났습니다.

-
+
diff --git a/mobile/skin/new/basic/new.skin.php b/mobile/skin/new/basic/new.skin.php index f0c23ae86..c9f540df3 100644 --- a/mobile/skin/new/basic/new.skin.php +++ b/mobile/skin/new/basic/new.skin.php @@ -28,33 +28,35 @@ if (!defined("_GNUBOARD_")) exit; // 개별 페이지 접근 불가 - - - - - - - - - - - - - - - - +
+
게시판제목일시
+ + + + + + + + + + + + + + + -"; -?> - -
게시판제목일시
게시물이 없습니다.
+ 게시물이 없습니다."; + ?> + + +
diff --git a/mobile/skin/poll/basic/poll_result.skin.php b/mobile/skin/poll/basic/poll_result.skin.php index 307dc87cf..e1120c3c1 100644 --- a/mobile/skin/poll/basic/poll_result.skin.php +++ b/mobile/skin/poll/basic/poll_result.skin.php @@ -58,23 +58,26 @@ if (!defined("_GNUBOARD_")) exit; // 개별 페이지 접근 불가

- - - - - - - - - - - - - - - - -
+ +
+ + + + + + + + + + + + + + + + +
+
@@ -94,7 +97,7 @@ if (!defined("_GNUBOARD_")) exit; // 개별 페이지 접근 불가 -
+
diff --git a/mobile/skin/poll/basic/style.css b/mobile/skin/poll/basic/style.css index c71cafd55..4b1eadf5a 100644 --- a/mobile/skin/poll/basic/style.css +++ b/mobile/skin/poll/basic/style.css @@ -7,30 +7,34 @@ #poll a.btn_admin:focus, #poll a.btn_admin:hover {} /* 폼 테이블 */ -#poll .frm_tbl {} -#poll .frm_tbl caption {} -#poll .frm_tbl th {} -#poll .frm_tbl td {} -#poll .frm_tbl textarea, #poll .frm_input {} -#poll .frm_tbl textarea {} -#poll .frm_address {} -#poll .frm_file {} -#poll .frm_tbl #captcha {} -#poll .frm_tbl #captcha input {} -#poll .frm_tbl a {} +#poll .tbl_frm table {} +#poll .tbl_frm .frm_address {} +#poll .tbl_frm .frm_file {} +#poll .tbl_frm .frm_info {} -#poll .frm_info {} +#poll .tbl_frm01 {} +#poll .tbl_frm01 caption {} +#poll .tbl_frm01 th {} +#poll .tbl_frm01 td {} +#poll .tbl_frm01 textarea, #poll .frm_input {} +#poll .tbl_frm01 textarea {} +/* +#poll .tbl_frm01 #captcha {} +#poll .tbl_frm01 #captcha input {} +*/ +#poll .tbl_frm01 a {} #poll .required {} /* 필수입력 */ +#poll textarea.required {} #poll .btn_confirm {} /* 서식단계 진행 */ #poll .btn_submit {} #poll .btn_cancel {} #poll .btn_frmline {} /* 우편번호검색버튼 등 */ -#poll .btn_win {} /* 새창용 */ -#poll .btn_win a {} -#poll .btn_win button {} -#poll .btn_win input {} +#poll .win_btn {} /* 새창용 */ +#poll .win_btn a {} +#poll .win_btn button {} +#poll .win_btn input {} /* ### 기본 스타일 커스터마이징 끝 ### */ diff --git a/mobile/tail.php b/mobile/tail.php index 74f87425b..b5d830adf 100644 --- a/mobile/tail.php +++ b/mobile/tail.php @@ -8,7 +8,7 @@ if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가
\ No newline at end of file diff --git a/plugin/gcaptcha/gcaptcha.js b/plugin/gcaptcha/gcaptcha.js index 2fef41a5d..593eed18c 100644 --- a/plugin/gcaptcha/gcaptcha.js +++ b/plugin/gcaptcha/gcaptcha.js @@ -6,7 +6,7 @@ function chk_captcha() var captcha_result = false; $.ajax({ type: "POST", - url: g5_gcaptcha_url+"/get.php", + url: g5_captcha_url+"/get.php", data: { "captcha_key": captcha_key.value }, @@ -19,6 +19,7 @@ function chk_captcha() if (!captcha_result) { alert("자동등록방지 숫자가 틀렸습니다."); captcha_key.select(); + captcha_key.focus(); return false; } return true; @@ -26,7 +27,7 @@ function chk_captcha() $(function() { $("#captcha").click(function(e) { - this.setAttribute("src", g5_url+"/plugin/gcaptcha/run.php?t="+(new Date).getTime()); + this.setAttribute("src", g5_captcha_url+"/run.php?t="+(new Date).getTime()); var keycode = (e.keyCode ? e.keyCode : e.which); // 첫 실행에서는 포커스를 주지 않음 if (typeof(keycode) != "undefined") { diff --git a/plugin/gcaptcha/gcaptcha.lib.php b/plugin/gcaptcha/gcaptcha.lib.php index efd1d6681..ba54d78a5 100644 --- a/plugin/gcaptcha/gcaptcha.lib.php +++ b/plugin/gcaptcha/gcaptcha.lib.php @@ -100,7 +100,7 @@ class gcaptcha // Replace path by your own font path $fonts = Array(); - foreach (glob(G5_GCAPTCHA_PATH.'/fonts/*.ttf') as $filename) { + foreach (glob(G5_CAPTCHA_PATH.'/fonts/*.ttf') as $filename) { $fonts[] = $filename; } $font = $fonts[mt_rand(0, count($fonts)-1)]; @@ -140,7 +140,7 @@ class gcaptcha $number = (string)$_SESSION['ss_captcha_key']; $mp3s = array(); for($i=0;$icaptcha_filename.'.jpg'; $mp3_file_url = G5_DATA_URL.'/cache/'.$obj->captcha_filename.'.mp3'; - $html .= "\n".''; - $html .= "\n".''; + $html .= "\n".''; + $html .= "\n".''; $html .= '
'; $html .= '자동등록방지'; if (G5_IS_MOBILE) $html .= ''; $html .= ''; - if (!G5_IS_MOBILE) $html .= '숫자를 음성으로 듣기'; + if (!G5_IS_MOBILE) $html .= '숫자를 음성으로 듣기'; $html .= ''; $html .= '

자동등록방지 숫자를 순서대로 입력하세요.

'; $html .= '
'; diff --git a/plugin/gcaptcha/get.php b/plugin/gcaptcha/get.php index a0e9b7e7d..0673e2bfc 100644 --- a/plugin/gcaptcha/get.php +++ b/plugin/gcaptcha/get.php @@ -1,6 +1,6 @@ \ No newline at end of file diff --git a/plugin/kcaptcha/_common.php b/plugin/kcaptcha/_common.php new file mode 100644 index 000000000..14553420b --- /dev/null +++ b/plugin/kcaptcha/_common.php @@ -0,0 +1,3 @@ + \ No newline at end of file diff --git a/plugin/kcaptcha/captcha.lib.php b/plugin/kcaptcha/captcha.lib.php new file mode 100644 index 000000000..a3c8d363d --- /dev/null +++ b/plugin/kcaptcha/captcha.lib.php @@ -0,0 +1,3 @@ + \ No newline at end of file diff --git a/plugin/kcaptcha/fonts/antiqua.png b/plugin/kcaptcha/fonts/antiqua.png new file mode 100644 index 000000000..78d93d597 Binary files /dev/null and b/plugin/kcaptcha/fonts/antiqua.png differ diff --git a/plugin/kcaptcha/fonts/baskerville.png b/plugin/kcaptcha/fonts/baskerville.png new file mode 100644 index 000000000..5a635287d Binary files /dev/null and b/plugin/kcaptcha/fonts/baskerville.png differ diff --git a/plugin/kcaptcha/fonts/batang.png b/plugin/kcaptcha/fonts/batang.png new file mode 100644 index 000000000..ba0075634 Binary files /dev/null and b/plugin/kcaptcha/fonts/batang.png differ diff --git a/plugin/kcaptcha/fonts/bookman.png b/plugin/kcaptcha/fonts/bookman.png new file mode 100644 index 000000000..1132a122a Binary files /dev/null and b/plugin/kcaptcha/fonts/bookman.png differ diff --git a/plugin/kcaptcha/fonts/calisto.png b/plugin/kcaptcha/fonts/calisto.png new file mode 100644 index 000000000..b3b0dd560 Binary files /dev/null and b/plugin/kcaptcha/fonts/calisto.png differ diff --git a/plugin/kcaptcha/fonts/cambria.png b/plugin/kcaptcha/fonts/cambria.png new file mode 100644 index 000000000..76ad92107 Binary files /dev/null and b/plugin/kcaptcha/fonts/cambria.png differ diff --git a/plugin/kcaptcha/fonts/centaur.png b/plugin/kcaptcha/fonts/centaur.png new file mode 100644 index 000000000..30a46cadd Binary files /dev/null and b/plugin/kcaptcha/fonts/centaur.png differ diff --git a/plugin/kcaptcha/fonts/century.png b/plugin/kcaptcha/fonts/century.png new file mode 100644 index 000000000..abf89d7e2 Binary files /dev/null and b/plugin/kcaptcha/fonts/century.png differ diff --git a/plugin/kcaptcha/fonts/chaparral.png b/plugin/kcaptcha/fonts/chaparral.png new file mode 100644 index 000000000..7395bacdb Binary files /dev/null and b/plugin/kcaptcha/fonts/chaparral.png differ diff --git a/plugin/kcaptcha/fonts/constantia.png b/plugin/kcaptcha/fonts/constantia.png new file mode 100644 index 000000000..d3abc6464 Binary files /dev/null and b/plugin/kcaptcha/fonts/constantia.png differ diff --git a/plugin/kcaptcha/fonts/footlight.png b/plugin/kcaptcha/fonts/footlight.png new file mode 100644 index 000000000..cb2a634ec Binary files /dev/null and b/plugin/kcaptcha/fonts/footlight.png differ diff --git a/plugin/kcaptcha/fonts/garamond.png b/plugin/kcaptcha/fonts/garamond.png new file mode 100644 index 000000000..eb7222123 Binary files /dev/null and b/plugin/kcaptcha/fonts/garamond.png differ diff --git a/plugin/kcaptcha/fonts/georgia.png b/plugin/kcaptcha/fonts/georgia.png new file mode 100644 index 000000000..d00bb75e4 Binary files /dev/null and b/plugin/kcaptcha/fonts/georgia.png differ diff --git a/plugin/kcaptcha/fonts/goudy_old.png b/plugin/kcaptcha/fonts/goudy_old.png new file mode 100644 index 000000000..b4d236d9a Binary files /dev/null and b/plugin/kcaptcha/fonts/goudy_old.png differ diff --git a/plugin/kcaptcha/fonts/kozuka.png b/plugin/kcaptcha/fonts/kozuka.png new file mode 100644 index 000000000..ececa1104 Binary files /dev/null and b/plugin/kcaptcha/fonts/kozuka.png differ diff --git a/plugin/kcaptcha/fonts/lucida.png b/plugin/kcaptcha/fonts/lucida.png new file mode 100644 index 000000000..050732aa7 Binary files /dev/null and b/plugin/kcaptcha/fonts/lucida.png differ diff --git a/plugin/kcaptcha/fonts/minion.png b/plugin/kcaptcha/fonts/minion.png new file mode 100644 index 000000000..34384e51a Binary files /dev/null and b/plugin/kcaptcha/fonts/minion.png differ diff --git a/plugin/kcaptcha/fonts/palatino.png b/plugin/kcaptcha/fonts/palatino.png new file mode 100644 index 000000000..3a9d37b24 Binary files /dev/null and b/plugin/kcaptcha/fonts/palatino.png differ diff --git a/plugin/kcaptcha/fonts/perpetua.png b/plugin/kcaptcha/fonts/perpetua.png new file mode 100644 index 000000000..8b4c0871a Binary files /dev/null and b/plugin/kcaptcha/fonts/perpetua.png differ diff --git a/plugin/kcaptcha/fonts/rockwell.png b/plugin/kcaptcha/fonts/rockwell.png new file mode 100644 index 000000000..da19566d1 Binary files /dev/null and b/plugin/kcaptcha/fonts/rockwell.png differ diff --git a/plugin/kcaptcha/fonts/times.png b/plugin/kcaptcha/fonts/times.png new file mode 100644 index 000000000..656e99d97 Binary files /dev/null and b/plugin/kcaptcha/fonts/times.png differ diff --git a/plugin/kcaptcha/fonts/warnock.png b/plugin/kcaptcha/fonts/warnock.png new file mode 100644 index 000000000..c114dbcb9 Binary files /dev/null and b/plugin/kcaptcha/fonts/warnock.png differ diff --git a/plugin/kcaptcha/img/dot.gif b/plugin/kcaptcha/img/dot.gif new file mode 100644 index 000000000..35d42e808 Binary files /dev/null and b/plugin/kcaptcha/img/dot.gif differ diff --git a/plugin/kcaptcha/img/reload.gif b/plugin/kcaptcha/img/reload.gif new file mode 100644 index 000000000..439b6db92 Binary files /dev/null and b/plugin/kcaptcha/img/reload.gif differ diff --git a/plugin/kcaptcha/img/sound.gif b/plugin/kcaptcha/img/sound.gif new file mode 100644 index 000000000..5adcb1e8b Binary files /dev/null and b/plugin/kcaptcha/img/sound.gif differ diff --git a/plugin/kcaptcha/kcaptcha.js b/plugin/kcaptcha/kcaptcha.js new file mode 100644 index 000000000..e2aafa7c9 --- /dev/null +++ b/plugin/kcaptcha/kcaptcha.js @@ -0,0 +1,104 @@ +$(function(){ + $("#captcha_reload").bind("click", function(){ + $.ajax({ + type: 'POST', + url: g5_captcha_url+'/kcaptcha_session.php', + cache: false, + async: false, + success: function(text) { + $('#captcha_img').attr('src', g5_captcha_url+'/kcaptcha_image.php?t=' + (new Date).getTime()); + } + }); + + $.ajax({ + type: 'POST', + url: g5_captcha_url+'/kcaptcha_mp3.php', + cache: false, + async: false, + success: function(url) { + if (url) { + mp3_url = url + "?t="+new Date().getTime(); + $("#captcha_audio").attr("src", mp3_url); + } + } + }); + }).trigger("click"); + + var mp3_url = ""; + $("#captcha_mp3").click(function(){ + $("body").css("cursor", "wait"); + + $.ajax({ + type: 'POST', + url: g5_captcha_url+'/kcaptcha_mp3.php', + cache: false, + async: false, + success: function(url) { + if (url) { + mp3_url = url + "?t="+new Date().getTime(); + } + } + }); + + var html5use = false; + var html5audio = document.createElement("audio"); + if (html5audio.canPlayType && html5audio.canPlayType("audio/mpeg")) { + var wav = new Audio(mp3_url); + wav.id = "mp3_audio"; + wav.autoplay = true; + wav.controls = false; + wav.autobuffer = false; + wav.loop = false; + + if ($("#mp3_audio").length) $("#mp3_audio").remove(); + $("#captcha_mp3").after(wav); + + html5use = true; + } + + if (!html5use) { + var object = ''; + object += ''; + object += ''; + object += ''; + object += ''; + object += ''; + object += ''; + if ($("#mp3_object").length) + $("#mp3_object").remove(); + $("#captcha_mp3").after(object); + } + + $("body").css("cursor", "default"); + return false; + + }).css('cursor', 'pointer'); +}); + +// 출력된 캡챠이미지의 키값과 입력한 키값이 같은지 비교한다. +function chk_captcha() +{ + var captcha_result = false; + var captcha_key = document.getElementById('captcha_key'); + $.ajax({ + type: 'POST', + url: g5_captcha_url+'/kcaptcha_result.php', + data: { + 'captcha_key': captcha_key.value + }, + cache: false, + async: false, + success: function(text) { + captcha_result = text; + } + }); + + if (!captcha_result) { + alert('글자가 틀렸거나 입력 횟수가 넘었습니다.\n\n새로고침을 클릭하여 다시 입력해 주십시오.'); + captcha_key.select(); + captcha_key.focus(); + return false; + } + + return true; +} \ No newline at end of file diff --git a/plugin/kcaptcha/kcaptcha.lib.php b/plugin/kcaptcha/kcaptcha.lib.php new file mode 100644 index 000000000..60b4fc62e --- /dev/null +++ b/plugin/kcaptcha/kcaptcha.lib.php @@ -0,0 +1,279 @@ +keystring=''; + for($i=0;$i<$length;$i++){ + $this->keystring.=$allowed_symbols{mt_rand(0,strlen($allowed_symbols)-1)}; + } + if(!preg_match('/cp|cb|ck|c6|c9|rn|rm|mm|co|do|cl|db|qp|qb|dp|ww/', $this->keystring)) break; + } + */ + + $font_file=$fonts[mt_rand(0, count($fonts)-1)]; + $font=imagecreatefrompng($font_file); + imagealphablending($font, true); + $fontfile_width=imagesx($font); + $fontfile_height=imagesy($font)-1; + $font_metrics=array(); + $symbol=0; + $reading_symbol=false; + + // loading font + for($i=0;$i<$fontfile_width && $symbol<$alphabet_length;$i++){ + $transparent = (imagecolorat($font, $i, 0) >> 24) == 127; + + if(!$reading_symbol && !$transparent){ + $font_metrics[$alphabet{$symbol}]=array('start'=>$i); + $reading_symbol=true; + continue; + } + + if($reading_symbol && $transparent){ + $font_metrics[$alphabet{$symbol}]['end']=$i; + $reading_symbol=false; + $symbol++; + continue; + } + } + + $img=imagecreatetruecolor($width, $height); + imagealphablending($img, true); + $white=imagecolorallocate($img, 255, 255, 255); + $black=imagecolorallocate($img, 0, 0, 0); + + imagefilledrectangle($img, 0, 0, $width-1, $height-1, $white); + + // draw text + $x=1; + for($i=0;$ikeystring);$i++){ + $m=$font_metrics[$this->keystring{$i}]; + + $y=mt_rand(-$fluctuation_amplitude, $fluctuation_amplitude)+($height-$fontfile_height)/2+2; + + if($no_spaces){ + $shift=0; + if($i>0){ + $shift=10000; + for($sy=7;$sy<$fontfile_height-20;$sy+=1){ + for($sx=$m['start']-1;$sx<$m['end'];$sx+=1){ + $rgb=imagecolorat($font, $sx, $sy); + $opacity=$rgb>>24; + if($opacity<127){ + $left=$sx-$m['start']+$x; + $py=$sy+$y; + if($py>$height) break; + for($px=min($left,$width-1);$px>$left-12 && $px>=0;$px-=1){ + $color=imagecolorat($img, $px, $py) & 0xff; + if($color+$opacity<190){ + if($shift>$left-$px){ + $shift=$left-$px; + } + break; + } + } + break; + } + } + } + if($shift==10000){ + $shift=mt_rand(4,6); + } + + } + }else{ + $shift=1; + } + imagecopy($img, $font, $x-$shift, $y, $m['start'], 1, $m['end']-$m['start'], $fontfile_height); + $x+=$m['end']-$m['start']-$shift; + } + }while($x>=$width-10); // while not fit in canvas + + $center=$x/2; + + // credits. To remove, see configuration file + $img2=imagecreatetruecolor($width, $height+($show_credits?12:0)); + $foreground=imagecolorallocate($img2, $foreground_color[0], $foreground_color[1], $foreground_color[2]); + $background=imagecolorallocate($img2, $background_color[0], $background_color[1], $background_color[2]); + imagefilledrectangle($img2, 0, 0, $width-1, $height-1, $background); + imagefilledrectangle($img2, 0, $height, $width-1, $height+12, $foreground); + $credits=empty($credits)?$_SERVER['HTTP_HOST']:$credits; + imagestring($img2, 2, $width/2-imagefontwidth(2)*strlen($credits)/2, $height-2, $credits, $background); + + // periods + $rand1=mt_rand(750000,1200000)/10000000; + $rand2=mt_rand(750000,1200000)/10000000; + $rand3=mt_rand(750000,1200000)/10000000; + $rand4=mt_rand(750000,1200000)/10000000; + // phases + $rand5=mt_rand(0,31415926)/10000000; + $rand6=mt_rand(0,31415926)/10000000; + $rand7=mt_rand(0,31415926)/10000000; + $rand8=mt_rand(0,31415926)/10000000; + // amplitudes + $rand9=mt_rand(330,420)/110; + $rand10=mt_rand(330,450)/110; + + //wave distortion + + for($x=0;$x<$width;$x++){ + for($y=0;$y<$height;$y++){ + if ($wave) { + $sx=$x+(sin($x*$rand1+$rand5)+sin($y*$rand3+$rand6))*$rand9-$width/2+$center+1; + $sy=$y+(sin($x*$rand2+$rand7)+sin($y*$rand4+$rand8))*$rand10; + } + else { + $sx=$x-$width/2+$center+1; + $sy=$y+(sin($x*$rand2+$rand7)+sin($y*$rand4+$rand8))*1.5; + } + + if($sx<0 || $sy<0 || $sx>=$width-1 || $sy>=$height-1){ + continue; + }else{ + $color=imagecolorat($img, $sx, $sy) & 0xFF; + $color_x=imagecolorat($img, $sx+1, $sy) & 0xFF; + $color_y=imagecolorat($img, $sx, $sy+1) & 0xFF; + $color_xy=imagecolorat($img, $sx+1, $sy+1) & 0xFF; + } + + if($color==255 && $color_x==255 && $color_y==255 && $color_xy==255){ + continue; + }else if($color==0 && $color_x==0 && $color_y==0 && $color_xy==0){ + $newred=$foreground_color[0]; + $newgreen=$foreground_color[1]; + $newblue=$foreground_color[2]; + }else{ + $frsx=$sx-floor($sx); + $frsy=$sy-floor($sy); + $frsx1=1-$frsx; + $frsy1=1-$frsy; + + $newcolor=( + $color*$frsx1*$frsy1+ + $color_x*$frsx*$frsy1+ + $color_y*$frsx1*$frsy+ + $color_xy*$frsx*$frsy); + + if($newcolor>255) $newcolor=255; + $newcolor=$newcolor/255; + $newcolor0=1-$newcolor; + + $newred=$newcolor0*$foreground_color[0]+$newcolor*$background_color[0]; + $newgreen=$newcolor0*$foreground_color[1]+$newcolor*$background_color[1]; + $newblue=$newcolor0*$foreground_color[2]+$newcolor*$background_color[2]; + } + + imagesetpixel($img2, $x, $y, imagecolorallocate($img2, $newred, $newgreen, $newblue)); + } + } + + header('Expires: Mon, 26 Jul 1997 05:00:00 GMT'); + header('Cache-Control: no-store, no-cache, must-revalidate'); + header('Cache-Control: post-check=0, pre-check=0', FALSE); + header('Pragma: no-cache'); + + if(function_exists("imagejpeg")){ + header("Content-Type: image/jpeg"); + imagejpeg($img2, null, $jpeg_quality); + }else if(function_exists("imagegif")){ + header("Content-Type: image/gif"); + imagegif($img2); + }else if(function_exists("imagepng")){ + header("Content-Type: image/x-png"); + imagepng($img2); + } + } + + // returns keystring + function getKeyString(){ + return $this->keystring; + } + + function setKeyString($str){ + $this->keystring = $str; + } +} + + +// 캡챠 HTML 코드 출력 +function captcha_html($class="captcha") +{ + $html .= "\n".''; + $html .= "\n".''; + $html .= "\n".''; + $html .= "\n".'
'; + $html .= "\n".'자동등록방지'; + if (G5_IS_MOBILE) $html .= ''; + $html .= "\n".''; + if (!G5_IS_MOBILE) $html .= "\n".''; + $html .= "\n".''; + $html .= ''; + $html .= "\n".'자동등록방지 숫자를 순서대로 입력하세요.'; + $html .= "\n".'
'; + return $html; +} + + +// 캡챠 사용시 자바스크립트에서 입력된 캡챠를 검사함 +function chk_captcha_js() +{ + return "if (!chk_captcha()) return false;\n"; +} + + +// 세션에 저장된 캡챠값과 $_POST 로 넘어온 캡챠값을 비교 +function chk_captcha() +{ + $captcha_count = (int)get_session('ss_captcha_count'); + if ($captcha_count > 5) { + return false; + } + + if (!isset($_POST['captcha_key'])) return false; + if (!trim($_POST['captcha_key'])) return false; + if ($_POST['captcha_key'] != get_session('ss_captcha_key')) { + $_SESSION['ss_captcha_count'] = $captcha_count + 1; + $sql = " insert _error set er_datetime = NOW(), er_ip = '{$_SERVER['REMOTE_ADDR']}', er_user_agent = '{$_SERVER['HTTP_USER_AGENT']}', er_request = 'POST(".$_POST['captcha_key'].')!=SESSION('.get_session('ss_captcha_key').")' "; + sql_query($sql); + return false; + } + return true; +} +?> \ No newline at end of file diff --git a/plugin/kcaptcha/kcaptcha_config.php b/plugin/kcaptcha/kcaptcha_config.php new file mode 100644 index 000000000..7d8f70f02 --- /dev/null +++ b/plugin/kcaptcha/kcaptcha_config.php @@ -0,0 +1,42 @@ + \ No newline at end of file diff --git a/plugin/kcaptcha/kcaptcha_image.php b/plugin/kcaptcha/kcaptcha_image.php new file mode 100644 index 000000000..e45df0306 --- /dev/null +++ b/plugin/kcaptcha/kcaptcha_image.php @@ -0,0 +1,11 @@ +setKeyString(get_session("ss_captcha_key")); +$captcha->getKeyString(); +$captcha->image(); +?> \ No newline at end of file diff --git a/plugin/kcaptcha/kcaptcha_mp3.php b/plugin/kcaptcha/kcaptcha_mp3.php new file mode 100644 index 000000000..d7c0cd35a --- /dev/null +++ b/plugin/kcaptcha/kcaptcha_mp3.php @@ -0,0 +1,44 @@ + \ No newline at end of file diff --git a/plugin/kcaptcha/kcaptcha_result.php b/plugin/kcaptcha/kcaptcha_result.php new file mode 100644 index 000000000..ad4daf8ca --- /dev/null +++ b/plugin/kcaptcha/kcaptcha_result.php @@ -0,0 +1,13 @@ += 5) { // 설정값 이상이면 자동등록방지 입력 문자가 맞아도 오류 처리 + echo false; +} else { + set_session("ss_captcha_count", $count + 1); + echo (get_session("ss_captcha_key") == $_POST['captcha_key']) ? true : false; +} +?> \ No newline at end of file diff --git a/plugin/kcaptcha/kcaptcha_session.php b/plugin/kcaptcha/kcaptcha_session.php new file mode 100644 index 000000000..77b1eb036 --- /dev/null +++ b/plugin/kcaptcha/kcaptcha_session.php @@ -0,0 +1,19 @@ +setKeyString(get_session("ss_captcha_key")); +?> \ No newline at end of file diff --git a/plugin/kcaptcha/mp3/basic/0.mp3 b/plugin/kcaptcha/mp3/basic/0.mp3 new file mode 100644 index 000000000..a51bd81e1 Binary files /dev/null and b/plugin/kcaptcha/mp3/basic/0.mp3 differ diff --git a/plugin/kcaptcha/mp3/basic/1.mp3 b/plugin/kcaptcha/mp3/basic/1.mp3 new file mode 100644 index 000000000..8bb5448b6 Binary files /dev/null and b/plugin/kcaptcha/mp3/basic/1.mp3 differ diff --git a/plugin/kcaptcha/mp3/basic/2.mp3 b/plugin/kcaptcha/mp3/basic/2.mp3 new file mode 100644 index 000000000..0fc093579 Binary files /dev/null and b/plugin/kcaptcha/mp3/basic/2.mp3 differ diff --git a/plugin/kcaptcha/mp3/basic/3.mp3 b/plugin/kcaptcha/mp3/basic/3.mp3 new file mode 100644 index 000000000..bcf0d27f0 Binary files /dev/null and b/plugin/kcaptcha/mp3/basic/3.mp3 differ diff --git a/plugin/kcaptcha/mp3/basic/4.mp3 b/plugin/kcaptcha/mp3/basic/4.mp3 new file mode 100644 index 000000000..2b3b2c3e4 Binary files /dev/null and b/plugin/kcaptcha/mp3/basic/4.mp3 differ diff --git a/plugin/kcaptcha/mp3/basic/5.mp3 b/plugin/kcaptcha/mp3/basic/5.mp3 new file mode 100644 index 000000000..2243fbee8 Binary files /dev/null and b/plugin/kcaptcha/mp3/basic/5.mp3 differ diff --git a/plugin/kcaptcha/mp3/basic/6.mp3 b/plugin/kcaptcha/mp3/basic/6.mp3 new file mode 100644 index 000000000..dc640b242 Binary files /dev/null and b/plugin/kcaptcha/mp3/basic/6.mp3 differ diff --git a/plugin/kcaptcha/mp3/basic/7.mp3 b/plugin/kcaptcha/mp3/basic/7.mp3 new file mode 100644 index 000000000..3e423af6c Binary files /dev/null and b/plugin/kcaptcha/mp3/basic/7.mp3 differ diff --git a/plugin/kcaptcha/mp3/basic/8.mp3 b/plugin/kcaptcha/mp3/basic/8.mp3 new file mode 100644 index 000000000..59f4bcc61 Binary files /dev/null and b/plugin/kcaptcha/mp3/basic/8.mp3 differ diff --git a/plugin/kcaptcha/mp3/basic/9.mp3 b/plugin/kcaptcha/mp3/basic/9.mp3 new file mode 100644 index 000000000..a1b5d0b46 Binary files /dev/null and b/plugin/kcaptcha/mp3/basic/9.mp3 differ diff --git a/plugin/kcaptcha/mp3/jmoon/0.mp3 b/plugin/kcaptcha/mp3/jmoon/0.mp3 new file mode 100644 index 000000000..051d494c6 Binary files /dev/null and b/plugin/kcaptcha/mp3/jmoon/0.mp3 differ diff --git a/plugin/kcaptcha/mp3/jmoon/1.mp3 b/plugin/kcaptcha/mp3/jmoon/1.mp3 new file mode 100644 index 000000000..2a89aa50e Binary files /dev/null and b/plugin/kcaptcha/mp3/jmoon/1.mp3 differ diff --git a/plugin/kcaptcha/mp3/jmoon/2.mp3 b/plugin/kcaptcha/mp3/jmoon/2.mp3 new file mode 100644 index 000000000..325bd2c1d Binary files /dev/null and b/plugin/kcaptcha/mp3/jmoon/2.mp3 differ diff --git a/plugin/kcaptcha/mp3/jmoon/3.mp3 b/plugin/kcaptcha/mp3/jmoon/3.mp3 new file mode 100644 index 000000000..bfd4df7f8 Binary files /dev/null and b/plugin/kcaptcha/mp3/jmoon/3.mp3 differ diff --git a/plugin/kcaptcha/mp3/jmoon/4.mp3 b/plugin/kcaptcha/mp3/jmoon/4.mp3 new file mode 100644 index 000000000..1ef3cd5a1 Binary files /dev/null and b/plugin/kcaptcha/mp3/jmoon/4.mp3 differ diff --git a/plugin/kcaptcha/mp3/jmoon/5.mp3 b/plugin/kcaptcha/mp3/jmoon/5.mp3 new file mode 100644 index 000000000..3e50114ee Binary files /dev/null and b/plugin/kcaptcha/mp3/jmoon/5.mp3 differ diff --git a/plugin/kcaptcha/mp3/jmoon/6.mp3 b/plugin/kcaptcha/mp3/jmoon/6.mp3 new file mode 100644 index 000000000..ca45dfe46 Binary files /dev/null and b/plugin/kcaptcha/mp3/jmoon/6.mp3 differ diff --git a/plugin/kcaptcha/mp3/jmoon/7.mp3 b/plugin/kcaptcha/mp3/jmoon/7.mp3 new file mode 100644 index 000000000..8968e8352 Binary files /dev/null and b/plugin/kcaptcha/mp3/jmoon/7.mp3 differ diff --git a/plugin/kcaptcha/mp3/jmoon/8.mp3 b/plugin/kcaptcha/mp3/jmoon/8.mp3 new file mode 100644 index 000000000..f2ae153e9 Binary files /dev/null and b/plugin/kcaptcha/mp3/jmoon/8.mp3 differ diff --git a/plugin/kcaptcha/mp3/jmoon/9.mp3 b/plugin/kcaptcha/mp3/jmoon/9.mp3 new file mode 100644 index 000000000..d534cecb3 Binary files /dev/null and b/plugin/kcaptcha/mp3/jmoon/9.mp3 differ diff --git a/skin/board/basic/list.skin.php b/skin/board/basic/list.skin.php index 77dd36a34..79533d75c 100644 --- a/skin/board/basic/list.skin.php +++ b/skin/board/basic/list.skin.php @@ -11,7 +11,7 @@ if ($is_nogood) $colspan++; -

목록

+

목록

@@ -55,81 +55,83 @@ if ($is_nogood) $colspan++; - - - - - - - - - - - - - - - - - - - "> - - - - - + + + + + + + + + + + + '; } ?> + +
목록
번호 - - - 제목글쓴이날짜조회추천비추천
- 공지'; - else if ($wr_id == $list[$i]['wr_id']) - echo "열람중"; - else - echo $list[$i]['num']; - ?> - - - - - - +
+ + + + + + + - - - - 댓글 - - + + + + + + + + + + + "> + - - - - - - - - '; } ?> - -
목록
번호 + + + 제목글쓴이날짜조회추천비추천
'; } - - if (isset($list[$i]['icon_new'])) echo $list[$i]['icon_new']; - if (isset($list[$i]['icon_hot'])) echo $list[$i]['icon_hot']; - if (isset($list[$i]['icon_file'])) echo $list[$i]['icon_file']; - if (isset($list[$i]['icon_link'])) echo $list[$i]['icon_link']; - if (isset($list[$i]['icon_secret'])) echo $list[$i]['icon_secret']; - + if ($list[$i]['is_notice']) // 공지사항 + echo '공지'; + else if ($wr_id == $list[$i]['wr_id']) + echo "열람중"; + else + echo $list[$i]['num']; ?> -
게시물이 없습니다.
+
+ + + + + + + + + + 댓글 + + + '; } + + if (isset($list[$i]['icon_new'])) echo $list[$i]['icon_new']; + if (isset($list[$i]['icon_hot'])) echo $list[$i]['icon_hot']; + if (isset($list[$i]['icon_file'])) echo $list[$i]['icon_file']; + if (isset($list[$i]['icon_link'])) echo $list[$i]['icon_link']; + if (isset($list[$i]['icon_secret'])) echo $list[$i]['icon_secret']; + + ?> +
게시물이 없습니다.
+
diff --git a/skin/board/basic/style.css b/skin/board/basic/style.css index 329eb27ec..3d4e35619 100644 --- a/skin/board/basic/style.css +++ b/skin/board/basic/style.css @@ -33,51 +33,52 @@ /* 기본 테이블 */ /* 목록 테이블 */ -#bo_list .basic_tbl {} -#bo_list .basic_tbl caption {} -#bo_list .basic_tbl thead th {} -#bo_list .basic_tbl thead a {} -#bo_list .basic_tbl thead th input {} /* middle 로 하면 게시판 읽기에서 목록 사용시 체크박스 라인 깨짐 */ -#bo_list .basic_tbl tfoot th {} -#bo_list .basic_tbl tfoot td {} -#bo_list .basic_tbl tbody th {} -#bo_list .basic_tbl td {} -#bo_list .basic_tbl a {} -#bo_list .bo_sideview td {} /* 사이드뷰 사용하는 테이블 셀 패딩값 */ +#bo_list .tbl_head01 {} +#bo_list .tbl_head01 caption {} +#bo_list .tbl_head01 thead th {} +#bo_list .tbl_head01 thead a {} +#bo_list .tbl_head01 thead th input {} /* middle 로 하면 게시판 읽기에서 목록 사용시 체크박스 라인 깨짐 */ +#bo_list .tbl_head01 tfoot th {} +#bo_list .tbl_head01 tfoot td {} +#bo_list .tbl_head01 tbody th {} +#bo_list .tbl_head01 td {} +#bo_list .tbl_head01 a {} #bo_list td.empty_table {} -#bo_list li.empty_list {} /* 읽기 내 테이블 */ -#bo_v .basic_tbl {} -#bo_v .basic_tbl caption {} -#bo_v .basic_tbl thead th {} -#bo_v .basic_tbl thead a {} -#bo_v .basic_tbl thead th input {} /* middle 로 하면 게시판 읽기에서 목록 사용시 체크박스 라인 깨짐 */ -#bo_v .basic_tbl tfoot th {} -#bo_v .basic_tbl tfoot td {} -#bo_v .basic_tbl tbody th {} -#bo_v .basic_tbl td {} -#bo_v .basic_tbl a {} -#bo_v .bo_sideview td {} /* 사이드뷰 사용하는 테이블 셀 패딩값 */ +#bo_v .tbl_head01 {} +#bo_v .tbl_head01 caption {} +#bo_v .tbl_head01 thead th {} +#bo_v .tbl_head01 thead a {} +#bo_v .tbl_head01 thead th input {} /* middle 로 하면 게시판 읽기에서 목록 사용시 체크박스 라인 깨짐 */ +#bo_v .tbl_head01 tfoot th {} +#bo_v .tbl_head01 tfoot td {} +#bo_v .tbl_head01 tbody th {} +#bo_v .tbl_head01 td {} +#bo_v .tbl_head01 a {} #bo_v td.empty_table {} -#bo_v li.empty_list {} /* 쓰기 테이블 */ -#bo_w .frm_tbl {} -#bo_w .frm_tbl caption {} -#bo_w .frm_tbl th {} -#bo_w .frm_tbl td {} -#bo_w .frm_tbl textarea, #bo_w .frm_input {} -#bo_w .frm_tbl textarea {} +#bo_w table {} +#bo_w caption {} +#bo_w .frm_info {} #bo_w .frm_address {} #bo_w .frm_file {} -#bo_w .frm_tbl #captcha {} -#bo_w .frm_tbl #captcha input {} -#bo_w .frm_tbl a {} -#bo_w .frm_info {} +#bo_w .tbl_frm01 {} +#bo_w .tbl_frm01 th {} +#bo_w .tbl_frm01 td {} +#bo_w .tbl_frm01 textarea, #bo_w tbl_frm01 .frm_input {} +#bo_w .tbl_frm01 textarea {} +/* +#bo_w .tbl_frm01 #captcha {} +#bo_w .tbl_frm01 #captcha input {} +*/ +#bo_w .tbl_frm01 a {} -#bo_w .required {} /* 필수입력 */ +/* 필수입력 */ +#bo_w .required {} +#bo_w textarea.required {} #bo_w .cke_sc {} #bo_w button.btn_cke_sc{} @@ -91,8 +92,6 @@ /* ### 기본 스타일 커스터마이징 끝 ### */ /* 게시판 목록 */ -#bo_list_title {margin-bottom:20px;font-size:1.2em;letter-spacing:-0.1em} - #bo_list .td_board {width:120px;text-align:center} #bo_list .td_chk {width:30px;text-align:center} #bo_list .td_date {width:60px;text-align:center} diff --git a/skin/board/basic/view_comment.skin.php b/skin/board/basic/view_comment.skin.php index 6d8280ebe..af113cc30 100644 --- a/skin/board/basic/view_comment.skin.php +++ b/skin/board/basic/view_comment.skin.php @@ -101,52 +101,54 @@ var char_max = parseInt(); // 최대 - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
">
자동등록방지
내용 - 글자 - - - -
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
">
자동등록방지
내용 + 글자 + + + +
+
diff --git a/skin/board/basic/write.skin.php b/skin/board/basic/write.skin.php index acf89b32a..4d362d33b 100644 --- a/skin/board/basic/write.skin.php +++ b/skin/board/basic/write.skin.php @@ -5,7 +5,7 @@ if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가
-

+

@@ -53,127 +53,126 @@ if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가 echo $option_hidden; ?> - - - - - - - - +
+
+ + + + + + + - - - - - - + + + + + + - - - - - - + + + + + + - - - - - - + + + + + + - - - - - - + + + + + + - - - - - - + + + + + + - - - + + + + + + + - + + + +
글자
+ + + - - - - + + + + + + - - - - - - + + + + + + - - - - - - + + + + + + - - - - - - - - -
class="frm_input " maxlength="20">
class="frm_input " maxlength="20">
옵션
옵션
- -
+ +
-
- - - - -
- 임시 저장된 글 목록 -
-
    -
    +
    +
    + + + + +
    + 임시 저장된 글 목록 +
    +
      +
      +
      +
      +
      + + +

      이 게시판은 최소 글자 이상, 최대 글자 이하까지 글을 쓰실 수 있습니다.

      - -
      - - -

      이 게시판은 최소 글자 이상, 최대 글자 이하까지 글을 쓰실 수 있습니다.

      - - - - -
      글자
      - -
      " id="wr_link" class="frm_input" size="50">
      " id="wr_link" class="frm_input" size="50">
      파일 # + + + + + + + +
      파일 # - - - - - - - -
      자동등록방지 + +
      자동등록방지 - -
      + + +
      -

      - 작성하신 내용을 제출하시려면 글쓰기 버튼을, 작성을 취소하고 목록으로 돌아가시려면 취소 링크를 누르세요. -

      취소
      diff --git a/skin/board/gallery/list.skin.php b/skin/board/gallery/list.skin.php index da64473f2..fc27714ae 100644 --- a/skin/board/gallery/list.skin.php +++ b/skin/board/gallery/list.skin.php @@ -5,7 +5,7 @@ include_once(G5_LIB_PATH.'/thumbnail.lib.php'); -

      목록

      +

      목록

      diff --git a/skin/board/gallery/style.css b/skin/board/gallery/style.css index 314770e78..d7988684f 100644 --- a/skin/board/gallery/style.css +++ b/skin/board/gallery/style.css @@ -33,35 +33,39 @@ /* 기본 테이블 */ /* 읽기 내 테이블 */ -#bo_v .basic_tbl {} -#bo_v .basic_tbl caption {} -#bo_v .basic_tbl thead th {} -#bo_v .basic_tbl thead a {} -#bo_v .basic_tbl thead th input {} /* middle 로 하면 게시판 읽기에서 목록 사용시 체크박스 라인 깨짐 */ -#bo_v .basic_tbl tfoot th {} -#bo_v .basic_tbl tfoot td {} -#bo_v .basic_tbl tbody th {} -#bo_v .basic_tbl td {} -#bo_v .basic_tbl a {} -#bo_v .bo_sideview td {} /* 사이드뷰 사용하는 테이블 셀 패딩값 */ +#bo_v .tbl_head01 {} +#bo_v .tbl_head01 caption {} +#bo_v .tbl_head01 thead th {} +#bo_v .tbl_head01 thead a {} +#bo_v .tbl_head01 thead th input {} /* middle 로 하면 게시판 읽기에서 목록 사용시 체크박스 라인 깨짐 */ +#bo_v .tbl_head01 tfoot th {} +#bo_v .tbl_head01 tfoot td {} +#bo_v .tbl_head01 tbody th {} +#bo_v .tbl_head01 td {} +#bo_v .tbl_head01 a {} #bo_v td.empty_table {} /* 쓰기 테이블 */ -#bo_w .frm_tbl {} -#bo_w .frm_tbl caption {} -#bo_w .frm_tbl th {} -#bo_w .frm_tbl td {} -#bo_w .frm_tbl textarea, #bo_w .frm_input {} -#bo_w .frm_tbl textarea {} +#bo_w table {} +#bo_w caption {} +#bo_w .frm_info {} #bo_w .frm_address {} #bo_w .frm_file {} -#bo_w .frm_tbl #captcha {} -#bo_w .frm_tbl #captcha input {} -#bo_w .frm_tbl a {} -#bo_w .frm_info {} +#bo_w .tbl_frm01 {} +#bo_w .tbl_frm01 th {} +#bo_w .tbl_frm01 td {} +#bo_w .tbl_frm01 textarea, #bo_w tbl_frm01 .frm_input {} +#bo_w .tbl_frm01 textarea {} +/* +#bo_w .tbl_frm01 #captcha {} +#bo_w .tbl_frm01 #captcha input {} +*/ +#bo_w .tbl_frm01 a {} -#bo_w .required {} /* 필수입력 */ +/* 필수입력 */ +#bo_w .required {} +#bo_w textarea.required {} #bo_w .cke_sc {} #bo_w button.btn_cke_sc{} @@ -75,8 +79,6 @@ /* ### 기본 스타일 커스터마이징 끝 ### */ /* 게시판 목록 */ -#bo_list_title {margin-bottom:20px;font-size:1.2em;letter-spacing:-0.1em} - #bo_cate h2 {width:1px;height:1px;font-size:0;line-height:0;overflow:hidden} #bo_cate ul {margin-bottom:10px;padding-left:1px;width:728px;zoom:1} #bo_cate ul:after {display:block;visibility:hidden;clear:both;content:""} diff --git a/skin/board/gallery/view_comment.skin.php b/skin/board/gallery/view_comment.skin.php index 6d8280ebe..af113cc30 100644 --- a/skin/board/gallery/view_comment.skin.php +++ b/skin/board/gallery/view_comment.skin.php @@ -101,52 +101,54 @@ var char_max = parseInt(); // 최대 - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      ">
      자동등록방지
      내용 - 글자 - - - -
      +
      + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      ">
      자동등록방지
      내용 + 글자 + + + +
      +
      diff --git a/skin/board/gallery/write.skin.php b/skin/board/gallery/write.skin.php index acf89b32a..4d362d33b 100644 --- a/skin/board/gallery/write.skin.php +++ b/skin/board/gallery/write.skin.php @@ -5,7 +5,7 @@ if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가
      -

      +

      @@ -53,127 +53,126 @@ if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가 echo $option_hidden; ?> - - - - - - - - +
      +
      + + + + + + + - - - - - - + + + + + + - - - - - - + + + + + + - - - - - - + + + + + + - - - - - - + + + + + + - - - - - - + + + + + + - - - + + + + + + + - + + + +
      글자
      + + + - - - - + + + + + + - - - - - - + + + + + + - - - - - - + + + + + + - - - - - - - - -
      class="frm_input " maxlength="20">
      class="frm_input " maxlength="20">
      옵션
      옵션
      - -
      + +
      -
      - - - - -
      - 임시 저장된 글 목록 -
      -
        -
        +
        +
        + + + + +
        + 임시 저장된 글 목록 +
        +
          +
          +
          +
          +
          + + +

          이 게시판은 최소 글자 이상, 최대 글자 이하까지 글을 쓰실 수 있습니다.

          - -
          - - -

          이 게시판은 최소 글자 이상, 최대 글자 이하까지 글을 쓰실 수 있습니다.

          - - - - -
          글자
          - -
          " id="wr_link" class="frm_input" size="50">
          " id="wr_link" class="frm_input" size="50">
          파일 # + + + + + + + +
          파일 # - - - - - - - -
          자동등록방지 + +
          자동등록방지 - -
          + + +
          -

          - 작성하신 내용을 제출하시려면 글쓰기 버튼을, 작성을 취소하고 목록으로 돌아가시려면 취소 링크를 누르세요. -

          취소
          diff --git a/skin/connect/basic/current_connect.skin.php b/skin/connect/basic/current_connect.skin.php index db1159605..0e187429c 100644 --- a/skin/connect/basic/current_connect.skin.php +++ b/skin/connect/basic/current_connect.skin.php @@ -5,34 +5,36 @@ if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가 - - - - - - - - - -".$location.""; - else $display_location = $location; -?> +
          +
          번호이름위치
          + - - - + + + -"; -?> - -
          번호이름위치
          현재 접속자가 없습니다.
          + + + ".$location.""; + else $display_location = $location; + ?> + + + + + + 현재 접속자가 없습니다."; + ?> + + +
          \ No newline at end of file diff --git a/skin/member/basic/formmail.skin.php b/skin/member/basic/formmail.skin.php index 38727ef81..bbc55eb1b 100644 --- a/skin/member/basic/formmail.skin.php +++ b/skin/member/basic/formmail.skin.php @@ -6,7 +6,7 @@ if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가
          -

          님께 메일보내기

          +

          님께 메일보내기

          @@ -17,58 +17,56 @@ if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
          메일쓰기
          형식 - - - -
          - - 첨부 파일은 누락될 수 있으므로 메일을 보낸 후 파일이 첨부 되었는지 반드시 확인해 주시기 바랍니다. -
          자동등록방지
          +
          + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
          메일쓰기
          형식 + + + +
          + + 첨부 파일은 누락될 수 있으므로 메일을 보낸 후 파일이 첨부 되었는지 반드시 확인해 주시기 바랍니다. +
          자동등록방지
          +
          -
          -

          - 작성하신 메일을 발송하시려면 메일발송 버튼을,
          - 작성을 취소하고 창을 닫으시려면 창닫기 버튼을 누르세요. -

          +
          diff --git a/skin/member/basic/login.skin.php b/skin/member/basic/login.skin.php index 6195bfebb..c59eaf925 100644 --- a/skin/member/basic/login.skin.php +++ b/skin/member/basic/login.skin.php @@ -11,7 +11,7 @@ if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가 -
          +
          회원로그인 @@ -22,7 +22,7 @@ if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가
          -