From 644250f3f3ce43fd74cf52eac73ab277983217e1 Mon Sep 17 00:00:00 2001 From: chicpro Date: Mon, 16 Nov 2015 14:01:03 +0900 Subject: [PATCH 1/5] =?UTF-8?q?=EC=BA=A1=EC=B1=A0=20=EB=85=B8=EC=9D=B4?= =?UTF-8?q?=EC=A6=88=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- plugin/kcaptcha/kcaptcha.lib.php | 170 ++++++++++++++-------------- plugin/kcaptcha/kcaptcha_config.php | 16 ++- 2 files changed, 97 insertions(+), 89 deletions(-) diff --git a/plugin/kcaptcha/kcaptcha.lib.php b/plugin/kcaptcha/kcaptcha.lib.php index fddea6294..6c0ea5470 100644 --- a/plugin/kcaptcha/kcaptcha.lib.php +++ b/plugin/kcaptcha/kcaptcha.lib.php @@ -35,96 +35,98 @@ class KCAPTCHA{ $alphabet_length=strlen($alphabet); - do{ - /* - // generating random keystring - while(true){ - $this->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; + $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; + // 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}]=array('start'=>$i); + $reading_symbol=true; + continue; + } - if($reading_symbol && $transparent){ - $font_metrics[$alphabet{$symbol}]['end']=$i; - $reading_symbol=false; - $symbol++; - 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); + $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); + imagefilledrectangle($img, 0, 0, $width-1, $height-1, $white); - // draw text - $x=1; - for($i=0;$ikeystring);$i++){ - $m=$font_metrics[$this->keystring{$i}]; + // draw text + $x=1; + $odd=mt_rand(0,1); + if($odd==0) $odd=-1; + for($i=0;$i<$length;$i++){ + $m=$font_metrics[$this->keystring{$i}]; - $y=mt_rand(-$fluctuation_amplitude, $fluctuation_amplitude)+($height-$fontfile_height)/2+2; + $y=(($i%2)*$fluctuation_amplitude - $fluctuation_amplitude/2)*$odd + + mt_rand(-round($fluctuation_amplitude/3), round($fluctuation_amplitude/3)) + + ($height-$fontfile_height)/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); - } + if($no_spaces){ + $shift=0; + if($i>0){ + $shift=10000; + for($sy=3;$sy<$fontfile_height-10;$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-200 && $px>=0;$px-=1){ + $color=imagecolorat($img, $px, $py) & 0xff; + if($color+$opacity<170){ // 170 - threshold + 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 + } + }else{ + $shift=1; + } + imagecopy($img, $font, $x-$shift, $y, $m['start'], 1, $m['end']-$m['start'], $fontfile_height); + $x+=$m['end']-$m['start']-$shift; + } + + //noise + $white=imagecolorallocate($font, 255, 255, 255); + $black=imagecolorallocate($font, 0, 0, 0); + for($i=0;$i<(($height-30)*$x)*$white_noise_density;$i++){ + imagesetpixel($img, mt_rand(0, $x-1), mt_rand(10, $height-15), $white); + } + for($i=0;$i<(($height-30)*$x)*$black_noise_density;$i++){ + imagesetpixel($img, mt_rand(0, $x-1), mt_rand(10, $height-15), $black); + } $center=$x/2; @@ -235,21 +237,17 @@ class KCAPTCHA{ // 캡챠 HTML 코드 출력 function captcha_html($class="captcha") { - if(is_mobile()) - $class .= ' m_captcha'; - $html .= "\n".''; //$html .= "\n".''; $html .= "\n".''; $html .= "\n".'
'; $html .= "\n".''; - if (is_mobile()) $html .= ''; //$html .= "\n".''; $html .= "\n".''; - if (!is_mobile()) $html .= "\n".''; + $html .= "\n".''; $html .= "\n".''; $html .= ''; - $html .= "\n".'자동등록방지 숫자를 순서대로 입력하세요.'; + $html .= "\n".'자동등록방지 영숫자를 순서대로 입력하세요.'; $html .= "\n".'
'; return $html; } diff --git a/plugin/kcaptcha/kcaptcha_config.php b/plugin/kcaptcha/kcaptcha_config.php index 7d8f70f02..cd42a3a46 100644 --- a/plugin/kcaptcha/kcaptcha_config.php +++ b/plugin/kcaptcha/kcaptcha_config.php @@ -6,21 +6,31 @@ $alphabet = "0123456789abcdefghijklmnopqrstuvwxyz"; # do not change without chan # symbols used to draw CAPTCHA $allowed_symbols = "0123456789"; #digits +//$allowed_symbols = "0123456789abcdef"; #digits // 스캔 방지를 위하여 abcdef 추가 151029 15:00 +//$allowed_symbols = "abcdeghkmnpqsuvxyz"; #digits //$allowed_symbols = "23456789abcdeghkmnpqsuvxyz"; #alphabet without similar symbols (o=0, 1=l, i=j, t=f) # folder with fonts -$fontsdir = 'fonts'; +$fontsdir = 'fonts'; # CAPTCHA string length //$length = mt_rand(5,6); # random 5 or 6 $length = 6; # CAPTCHA image size (you do not need to change it, whis parameters is optimal) -$width = 120; +$width = 160; $height = 60; # symbol's vertical fluctuation amplitude divided by 2 -$fluctuation_amplitude = 5; +//$fluctuation_amplitude = 5; +//$fluctuation_amplitude = 11; // 파동&진폭 151028 14:00 +$fluctuation_amplitude = 5; // 파동&진폭 원래대로 151029 15:00 + +#noise +//$white_noise_density=0; // no white noise +$white_noise_density=1/6; +//$black_noise_density=0; // no black noise +$black_noise_density=1/20; # increase safety by prevention of spaces between symbols $no_spaces = false; From 210ee5285cd87a92abc68c71fdec08adc03b23fb Mon Sep 17 00:00:00 2001 From: chicpro Date: Mon, 16 Nov 2015 15:57:32 +0900 Subject: [PATCH 2/5] =?UTF-8?q?=ED=9A=8C=EC=9B=90=EA=B0=80=EC=9E=85=20?= =?UTF-8?q?=EA=B0=92=20=EC=B2=B4=ED=81=AC=20=EC=BD=94=EB=93=9C=20=EC=88=98?= =?UTF-8?q?=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- bbs/ajax.mb_email.php | 4 ++++ bbs/ajax.mb_id.php | 4 ++++ bbs/ajax.mb_nick.php | 4 ++++ bbs/register_form_update.php | 19 +++++++++++++++++++ 4 files changed, 31 insertions(+) diff --git a/bbs/ajax.mb_email.php b/bbs/ajax.mb_email.php index 6c50300cc..21a7df62c 100644 --- a/bbs/ajax.mb_email.php +++ b/bbs/ajax.mb_email.php @@ -5,8 +5,12 @@ include_once(G5_LIB_PATH.'/register.lib.php'); $mb_email = trim($_POST['reg_mb_email']); $mb_id = trim($_POST['reg_mb_id']); +set_session('ss_check_mb_email', ''); + if ($msg = empty_mb_email($mb_email)) die($msg); if ($msg = valid_mb_email($mb_email)) die($msg); if ($msg = prohibit_mb_email($mb_email)) die($msg); if ($msg = exist_mb_email($mb_email, $mb_id)) die($msg); + +set_session('ss_check_mb_email', $mb_email); ?> \ No newline at end of file diff --git a/bbs/ajax.mb_id.php b/bbs/ajax.mb_id.php index 6b0badd06..6ab21cb3f 100644 --- a/bbs/ajax.mb_id.php +++ b/bbs/ajax.mb_id.php @@ -4,9 +4,13 @@ include_once(G5_LIB_PATH.'/register.lib.php'); $mb_id = trim($_POST['reg_mb_id']); +set_session('ss_check_mb_id', ''); + if ($msg = empty_mb_id($mb_id)) die($msg); if ($msg = valid_mb_id($mb_id)) die($msg); if ($msg = count_mb_id($mb_id)) die($msg); if ($msg = exist_mb_id($mb_id)) die($msg); if ($msg = reserve_mb_id($mb_id)) die($msg); + +set_session('ss_check_mb_id', $mb_id); ?> \ No newline at end of file diff --git a/bbs/ajax.mb_nick.php b/bbs/ajax.mb_nick.php index 07fc5dcc9..74a289444 100644 --- a/bbs/ajax.mb_nick.php +++ b/bbs/ajax.mb_nick.php @@ -5,9 +5,13 @@ include_once(G5_LIB_PATH.'/register.lib.php'); $mb_nick = trim($_POST['reg_mb_nick']); $mb_id = trim($_POST['reg_mb_id']); +set_session('ss_check_mb_nick', ''); + if ($msg = empty_mb_nick($mb_nick)) die($msg); if ($msg = valid_mb_nick($mb_nick)) die($msg); if ($msg = count_mb_nick($mb_nick)) die($msg); if ($msg = exist_mb_nick($mb_nick, $mb_id)) die($msg); if ($msg = reserve_mb_nick($mb_nick)) die($msg); + +set_session('ss_check_mb_nick', $mb_nick); ?> \ No newline at end of file diff --git a/bbs/register_form_update.php b/bbs/register_form_update.php index b61c373d5..ef1392ca6 100644 --- a/bbs/register_form_update.php +++ b/bbs/register_form_update.php @@ -79,6 +79,17 @@ if ($w == '' || $w == 'u') { if ($msg = valid_mb_id($mb_id)) alert($msg, "", true, true); if ($msg = count_mb_id($mb_id)) alert($msg, "", true, true); + // 이름, 닉네임에 utf-8 이외의 문자가 포함됐다면 오류 + // 서버환경에 따라 정상적으로 체크되지 않을 수 있음. + $tmp_mb_name = iconv('UTF-8', 'UTF-8//IGNORE', $mb_name); + if($tmp_mb_name != $mb_name) { + alert('이름을 올바르게 입력해 주십시오.'); + } + $tmp_mb_nick = iconv('UTF-8', 'UTF-8//IGNORE', $mb_nick); + if($tmp_mb_nick != $mb_nick) { + alert('닉네임을 올바르게 입력해 주십시오.'); + } + if ($w == '' && !$mb_password) alert('비밀번호가 넘어오지 않았습니다.'); if($w == '' && $mb_password != $mb_password_re) @@ -103,6 +114,14 @@ if ($w == '' || $w == 'u') { if ($w=='') { if ($msg = exist_mb_id($mb_id)) alert($msg); + if (get_session('ss_check_mb_id') != $mb_id || get_session('ss_check_mb_nick') != $mb_nick || get_session('ss_check_mb_email') != $mb_email) { + set_session('ss_check_mb_id', ''); + set_session('ss_check_mb_nick', ''); + set_session('ss_check_mb_email', ''); + + alert('올바른 방법으로 이용해 주십시오.'); + } + // 본인확인 체크 if($config['cf_cert_use'] && $config['cf_cert_req']) { if(trim($_POST['cert_no']) != $_SESSION['ss_cert_no'] || !$_SESSION['ss_cert_no']) From cd445a2acda247851a0bccc95efa0dbac965a10a Mon Sep 17 00:00:00 2001 From: sora90224 Date: Mon, 16 Nov 2015 16:23:56 +0900 Subject: [PATCH 3/5] =?UTF-8?q?=EC=BA=A1=EC=B1=A0=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- css/default.css | 12 ++++++------ css/mobile.css | 14 ++++++++------ img/captcha.png | Bin 0 -> 19945 bytes theme/basic/css/default.css | 12 ++++++------ theme/basic/css/mobile.css | 12 ++++++------ 5 files changed, 26 insertions(+), 24 deletions(-) create mode 100644 img/captcha.png diff --git a/css/default.css b/css/default.css index 1d383334e..1656df554 100644 --- a/css/default.css +++ b/css/default.css @@ -122,12 +122,12 @@ a:hover, a:focus, a:active {color:#000;text-decoration:underline} /* 캡챠 자동등록(입력)방지 기본 */ #captcha {display:inline-block;position:relative} #captcha legend {position:absolute;margin:0;padding:0;font-size:0;line-height:0;text-indent:-9999em;overflow:hidden} -#captcha #captcha_img {width:100px;height:41px;border:1px solid #e9e9e9} -#captcha #captcha_mp3 {position:absolute;top:0;left:101px;;margin:0;padding:0;width:23px;height:22px;border:0;background:transparent;vertical-align:middle;overflow:hidden;cursor:pointer} -#captcha #captcha_mp3 span {position:absolute;top:0;left:0;width:23px;height:22px;background:url('../plugin/kcaptcha/img/sound.gif')} -#captcha #captcha_reload {position:absolute;top:21px;left:101px;margin:0;padding:0;width:23px;height:22px;border:0;background:transparent;vertical-align:middle;overflow:hidden;cursor:pointer} -#captcha #captcha_reload span {position:absolute;top:0;left:0;width:23px;height:22px;background:url('../plugin/kcaptcha/img/reload.gif')} -#captcha #captcha_key {margin:0 0 0 25px;padding:0 5px;width:70px;height:41px;border:1px solid #b8c9c2;background:#f7f7f7;font-size:1.333em;font-weight:bold;text-align:center;line-height:2.8em} +#captcha #captcha_img {width:160px;height:60px;border:1px solid #e9e9e9} +#captcha #captcha_mp3 {position:absolute;top:0;left:161px;;margin:0;padding:0;width:31px;height:31px;border:0;background:transparent;vertical-align:middle;overflow:hidden;cursor:pointer} +#captcha #captcha_mp3 span {position:absolute;top:0;left:0;width:31px;height:31px;background:url('../img/captcha') no-repeat;} +#captcha #captcha_reload {position:absolute;top:31px;left:161px;margin:0;padding:0;width:31px;height:31px;border:0;background:transparent;vertical-align:middle;overflow:hidden;cursor:pointer} +#captcha #captcha_reload span {position:absolute;top:0;left:0;width:31px;height:31px;background:url('../img/captcha') no-repeat 0 -30px;border-top:1px solid #ccc} +#captcha #captcha_key {margin:0 0 0 33px;padding:0 5px;width:70px;height:60px;border:1px solid #b8c9c2;background:#f7f7f7;font-size:1.333em;font-weight:bold;text-align:center;line-height:2.8em} #captcha #captcha_info {display:block;margin:5px 0 0;font-size:0.95em;letter-spacing:-0.1em} /* ckeditor 단축키 */ diff --git a/css/mobile.css b/css/mobile.css index 0a6f471b8..cf239b995 100644 --- a/css/mobile.css +++ b/css/mobile.css @@ -110,14 +110,16 @@ a:hover, a:focus, a:active {color:#000;text-decoration:underline} .img_fix {width:100%;height:auto} /* 캡챠 자동등록(입력)방지 기본 */ -#captcha {display:inline-block;position:relative} -#captcha legend {position:absolute;margin:0;padding:0;font-size:0;line-height:0;text-indent:-9999em;overflow:hidden} +#captcha {display:inline-block;position:relative;font-size:0} +#captcha legend {position:absolute;margin:0;padding:0;font-size:0;line-height:0;text-indent:-9999em;overflow:hidden;font-size:0} #captcha audio {display:block;margin:0 0 5px;width:187px} -#captcha #captcha_img {width:60px;height:30px;border:1px solid #e9e9e9} -#captcha #captcha_reload {margin:0;padding:0 5px;height:32px;border:0;background:#e4eaec;vertical-align:middle;overflow:hidden;cursor:pointer} -#captcha #captcha_key {margin:0 0 0 4px;padding:0 5px;width:50px;height:30px;border:1px solid #b8c9c2;background:#f7f7f7;font-size:1.333em;font-weight:bold;text-align:center;line-height:2em} +#captcha #captcha_img {width:160px;height:60px;border:1px solid #e9e9e9;margin-bottom:3px;margin-right:32px;} +#captcha #captcha_reload {position:absolute;top:31px;left:161px;width:31px;height:31px;background:url('../img/captcha') no-repeat 0 -30px;border:none;border-top:1px solid #ccc;overflow:hidden;cursor:pointer;text-indent:-9999px;} +#captcha #captcha_key {margin:0;padding:0 5px;width:70px;height:60px;border:1px solid #b8c9c2;background:#f7f7f7;font-size:1.333em;font-weight:bold;text-align:center;line-height:2.8em} #captcha #captcha_info {display:block;margin:5px 0 0;font-size:0.95em;letter-spacing:-0.1em} -#captcha #captcha_mp3{margin:0;padding:0 5px;height:32px;border:0;background:#e4eaec;vertical-align:middle;overflow:hidden;cursor:pointer} +#captcha #captcha_mp3 {position:absolute;top:0;left:161px;width:31px;height:31px;background:url('../img/captcha') no-repeat; vertical-align:top;overflow:hidden;cursor:pointer;text-indent:-9999px;border:none} + + /*단축키일람 */ .btn_cke_sc{background:#333;color:#fff;padding:5px;border:none;margin-bottom:5px} diff --git a/img/captcha.png b/img/captcha.png new file mode 100644 index 0000000000000000000000000000000000000000..fee7cec38846f455ec7d4cc64a706b092732670e GIT binary patch literal 19945 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 Bw|4*l literal 0 HcmV?d00001 diff --git a/theme/basic/css/default.css b/theme/basic/css/default.css index 9b1f58887..075feb1fe 100644 --- a/theme/basic/css/default.css +++ b/theme/basic/css/default.css @@ -122,12 +122,12 @@ a:hover, a:focus, a:active {color:#000;text-decoration:underline} /* 캡챠 자동등록(입력)방지 기본 */ #captcha {display:inline-block;position:relative} #captcha legend {position:absolute;margin:0;padding:0;font-size:0;line-height:0;text-indent:-9999em;overflow:hidden} -#captcha #captcha_img {width:100px;height:41px;border:1px solid #e9e9e9} -#captcha #captcha_mp3 {position:absolute;top:0;left:101px;;margin:0;padding:0;width:23px;height:22px;border:0;background:transparent;vertical-align:middle;overflow:hidden;cursor:pointer} -#captcha #captcha_mp3 span {position:absolute;top:0;left:0;width:23px;height:22px;background:url('../../../plugin/kcaptcha/img/sound.gif')} -#captcha #captcha_reload {position:absolute;top:21px;left:101px;margin:0;padding:0;width:23px;height:22px;border:0;background:transparent;vertical-align:middle;overflow:hidden;cursor:pointer} -#captcha #captcha_reload span {position:absolute;top:0;left:0;width:23px;height:22px;background:url('../../../plugin/kcaptcha/img/reload.gif')} -#captcha #captcha_key {margin:0 0 0 25px;padding:0 5px;width:70px;height:41px;border:1px solid #b8c9c2;background:#f7f7f7;font-size:1.333em;font-weight:bold;text-align:center;line-height:2.8em} +#captcha #captcha_img {width:160px;height:60px;border:1px solid #e9e9e9} +#captcha #captcha_mp3 {position:absolute;top:0;left:161px;;margin:0;padding:0;width:31px;height:31px;border:0;background:transparent;vertical-align:middle;overflow:hidden;cursor:pointer} +#captcha #captcha_mp3 span {position:absolute;top:0;left:0;width:31px;height:31px;background:url('../../../img/captcha') no-repeat;} +#captcha #captcha_reload {position:absolute;top:31px;left:161px;margin:0;padding:0;width:31px;height:31px;border:0;background:transparent;vertical-align:middle;overflow:hidden;cursor:pointer;} +#captcha #captcha_reload span {position:absolute;top:0;left:0;width:31px;height:31px;background:url('../../../img/captcha') no-repeat 0 -30px;border-top:1px solid #ccc} +#captcha #captcha_key {margin:0 0 0 33px;padding:0 5px;width:70px;height:60px;border:1px solid #b8c9c2;background:#f7f7f7;font-size:1.333em;font-weight:bold;text-align:center;line-height:2.8em} #captcha #captcha_info {display:block;margin:5px 0 0;font-size:0.95em;letter-spacing:-0.1em} /* ckeditor 단축키 */ diff --git a/theme/basic/css/mobile.css b/theme/basic/css/mobile.css index 75892a80d..b9c667ee7 100644 --- a/theme/basic/css/mobile.css +++ b/theme/basic/css/mobile.css @@ -110,14 +110,14 @@ a:hover, a:focus, a:active {color:#000;text-decoration:underline} .img_fix {width:100%;height:auto} /* 캡챠 자동등록(입력)방지 기본 */ -#captcha {display:inline-block;position:relative} -#captcha legend {position:absolute;margin:0;padding:0;font-size:0;line-height:0;text-indent:-9999em;overflow:hidden} +#captcha {display:inline-block;position:relative;font-size:0} +#captcha legend {position:absolute;margin:0;padding:0;font-size:0;line-height:0;text-indent:-9999em;overflow:hidden;font-size:0} #captcha audio {display:block;margin:0 0 5px;width:187px} -#captcha #captcha_img {width:60px;height:30px;border:1px solid #e9e9e9} -#captcha #captcha_reload {margin:0;padding:0 5px;height:32px;border:0;background:#e4eaec;vertical-align:middle;overflow:hidden;cursor:pointer} -#captcha #captcha_key {margin:0 0 0 4px;padding:0 5px;width:50px;height:30px;border:1px solid #b8c9c2;background:#f7f7f7;font-size:1.333em;font-weight:bold;text-align:center;line-height:2em} +#captcha #captcha_img {width:160px;height:60px;border:1px solid #e9e9e9;margin-bottom:3px;margin-right:32px;} +#captcha #captcha_reload {position:absolute;top:31px;left:161px;width:31px;height:31px;background:url('../../../img/captcha') no-repeat 0 -30px;border:none;border-top:1px solid #ccc;overflow:hidden;cursor:pointer;text-indent:-9999px;} +#captcha #captcha_key {margin:0;padding:0 5px;width:70px;height:60px;border:1px solid #b8c9c2;background:#f7f7f7;font-size:1.333em;font-weight:bold;text-align:center;line-height:2.8em} #captcha #captcha_info {display:block;margin:5px 0 0;font-size:0.95em;letter-spacing:-0.1em} -#captcha #captcha_mp3{margin:0;padding:0 5px;height:32px;border:0;background:#e4eaec;vertical-align:middle;overflow:hidden;cursor:pointer} +#captcha #captcha_mp3 {position:absolute;top:0;left:161px;width:31px;height:31px;background:url('../../../img/captcha') no-repeat; vertical-align:top;overflow:hidden;cursor:pointer;text-indent:-9999px;border:none} /*단축키일람 */ .btn_cke_sc{background:#333;color:#fff;padding:5px;border:none;margin-bottom:5px} From 235f19615279a4daa05df1508a26a46c49b526ea Mon Sep 17 00:00:00 2001 From: sora90224 Date: Mon, 16 Nov 2015 16:27:57 +0900 Subject: [PATCH 4/5] =?UTF-8?q?=EC=BA=A1=EC=B1=A0=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- css/mobile.css | 2 +- theme/basic/css/mobile.css | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/css/mobile.css b/css/mobile.css index cf239b995..bf53558cb 100644 --- a/css/mobile.css +++ b/css/mobile.css @@ -115,7 +115,7 @@ a:hover, a:focus, a:active {color:#000;text-decoration:underline} #captcha audio {display:block;margin:0 0 5px;width:187px} #captcha #captcha_img {width:160px;height:60px;border:1px solid #e9e9e9;margin-bottom:3px;margin-right:32px;} #captcha #captcha_reload {position:absolute;top:31px;left:161px;width:31px;height:31px;background:url('../img/captcha') no-repeat 0 -30px;border:none;border-top:1px solid #ccc;overflow:hidden;cursor:pointer;text-indent:-9999px;} -#captcha #captcha_key {margin:0;padding:0 5px;width:70px;height:60px;border:1px solid #b8c9c2;background:#f7f7f7;font-size:1.333em;font-weight:bold;text-align:center;line-height:2.8em} +#captcha #captcha_key {margin:0;padding:0 5px;width:70px;height:60px;border:1px solid #b8c9c2;background:#f7f7f7;font-size:12px;font-weight:bold;text-align:center;line-height:2.8em} #captcha #captcha_info {display:block;margin:5px 0 0;font-size:0.95em;letter-spacing:-0.1em} #captcha #captcha_mp3 {position:absolute;top:0;left:161px;width:31px;height:31px;background:url('../img/captcha') no-repeat; vertical-align:top;overflow:hidden;cursor:pointer;text-indent:-9999px;border:none} diff --git a/theme/basic/css/mobile.css b/theme/basic/css/mobile.css index b9c667ee7..0ffbafc81 100644 --- a/theme/basic/css/mobile.css +++ b/theme/basic/css/mobile.css @@ -115,7 +115,7 @@ a:hover, a:focus, a:active {color:#000;text-decoration:underline} #captcha audio {display:block;margin:0 0 5px;width:187px} #captcha #captcha_img {width:160px;height:60px;border:1px solid #e9e9e9;margin-bottom:3px;margin-right:32px;} #captcha #captcha_reload {position:absolute;top:31px;left:161px;width:31px;height:31px;background:url('../../../img/captcha') no-repeat 0 -30px;border:none;border-top:1px solid #ccc;overflow:hidden;cursor:pointer;text-indent:-9999px;} -#captcha #captcha_key {margin:0;padding:0 5px;width:70px;height:60px;border:1px solid #b8c9c2;background:#f7f7f7;font-size:1.333em;font-weight:bold;text-align:center;line-height:2.8em} +#captcha #captcha_key {margin:0;padding:0 5px;width:70px;height:60px;border:1px solid #b8c9c2;background:#f7f7f7;font-size:12px;font-weight:bold;text-align:center;line-height:2.8em} #captcha #captcha_info {display:block;margin:5px 0 0;font-size:0.95em;letter-spacing:-0.1em} #captcha #captcha_mp3 {position:absolute;top:0;left:161px;width:31px;height:31px;background:url('../../../img/captcha') no-repeat; vertical-align:top;overflow:hidden;cursor:pointer;text-indent:-9999px;border:none} From f704fd7ea4b4b0210881e023d7b8488906063ec1 Mon Sep 17 00:00:00 2001 From: sora90224 Date: Mon, 16 Nov 2015 16:31:58 +0900 Subject: [PATCH 5/5] =?UTF-8?q?=EC=BA=A1=EC=B1=A0=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- css/mobile.css | 4 ++-- theme/basic/css/mobile.css | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/css/mobile.css b/css/mobile.css index bf53558cb..87a0f2854 100644 --- a/css/mobile.css +++ b/css/mobile.css @@ -110,12 +110,12 @@ a:hover, a:focus, a:active {color:#000;text-decoration:underline} .img_fix {width:100%;height:auto} /* 캡챠 자동등록(입력)방지 기본 */ -#captcha {display:inline-block;position:relative;font-size:0} +#captcha {display:inline-block;position:relative;} #captcha legend {position:absolute;margin:0;padding:0;font-size:0;line-height:0;text-indent:-9999em;overflow:hidden;font-size:0} #captcha audio {display:block;margin:0 0 5px;width:187px} #captcha #captcha_img {width:160px;height:60px;border:1px solid #e9e9e9;margin-bottom:3px;margin-right:32px;} #captcha #captcha_reload {position:absolute;top:31px;left:161px;width:31px;height:31px;background:url('../img/captcha') no-repeat 0 -30px;border:none;border-top:1px solid #ccc;overflow:hidden;cursor:pointer;text-indent:-9999px;} -#captcha #captcha_key {margin:0;padding:0 5px;width:70px;height:60px;border:1px solid #b8c9c2;background:#f7f7f7;font-size:12px;font-weight:bold;text-align:center;line-height:2.8em} +#captcha #captcha_key {margin:0;padding:0 5px;width:70px;height:60px;border:1px solid #b8c9c2;background:#f7f7f7;font-size:1.333em;font-weight:bold;text-align:center;line-height:2.8em} #captcha #captcha_info {display:block;margin:5px 0 0;font-size:0.95em;letter-spacing:-0.1em} #captcha #captcha_mp3 {position:absolute;top:0;left:161px;width:31px;height:31px;background:url('../img/captcha') no-repeat; vertical-align:top;overflow:hidden;cursor:pointer;text-indent:-9999px;border:none} diff --git a/theme/basic/css/mobile.css b/theme/basic/css/mobile.css index 0ffbafc81..48562eecd 100644 --- a/theme/basic/css/mobile.css +++ b/theme/basic/css/mobile.css @@ -110,12 +110,12 @@ a:hover, a:focus, a:active {color:#000;text-decoration:underline} .img_fix {width:100%;height:auto} /* 캡챠 자동등록(입력)방지 기본 */ -#captcha {display:inline-block;position:relative;font-size:0} +#captcha {display:inline-block;position:relative;} #captcha legend {position:absolute;margin:0;padding:0;font-size:0;line-height:0;text-indent:-9999em;overflow:hidden;font-size:0} #captcha audio {display:block;margin:0 0 5px;width:187px} #captcha #captcha_img {width:160px;height:60px;border:1px solid #e9e9e9;margin-bottom:3px;margin-right:32px;} #captcha #captcha_reload {position:absolute;top:31px;left:161px;width:31px;height:31px;background:url('../../../img/captcha') no-repeat 0 -30px;border:none;border-top:1px solid #ccc;overflow:hidden;cursor:pointer;text-indent:-9999px;} -#captcha #captcha_key {margin:0;padding:0 5px;width:70px;height:60px;border:1px solid #b8c9c2;background:#f7f7f7;font-size:12px;font-weight:bold;text-align:center;line-height:2.8em} +#captcha #captcha_key {margin:0;padding:0 5px;width:70px;height:60px;border:1px solid #b8c9c2;background:#f7f7f7;font-size:1.333em;font-weight:bold;text-align:center;line-height:2.8em} #captcha #captcha_info {display:block;margin:5px 0 0;font-size:0.95em;letter-spacing:-0.1em} #captcha #captcha_mp3 {position:absolute;top:0;left:161px;width:31px;height:31px;background:url('../../../img/captcha') no-repeat; vertical-align:top;overflow:hidden;cursor:pointer;text-indent:-9999px;border:none}