diff --git a/adm/config_form.php b/adm/config_form.php index 016355d11..4a8bdd8e9 100644 --- a/adm/config_form.php +++ b/adm/config_form.php @@ -1183,7 +1183,7 @@ include_once('_rewrite_config_form.php'); - 앱 등록하기 + 앱 등록하기 diff --git a/adm/sms_admin/css/sms5.css b/adm/sms_admin/css/sms5.css index 03187e7ea..31a4096f9 100644 --- a/adm/sms_admin/css/sms5.css +++ b/adm/sms_admin/css/sms5.css @@ -126,7 +126,7 @@ /* 휴대폰번호 파일 */ #sms5_fileup_frm {margin:0 0 10px;padding:0 0;border-bottom:1px solid #e9e9e9} -#sms5_fileup_frm div {padding:5px 0;;border-bottom:1px solid #f4f4f4} +#sms5_fileup_frm div {padding:5px 0;border-bottom:1px solid #f4f4f4} #sms5_fileup_frm div.sch_last {margin:0;border:0} #sms5_fileup_frm strong {display:inline-block;width:80px} #sms5_fileup_frm strong.sch_long {width:160px} diff --git a/common.php b/common.php index 8100e85ca..fc22fb036 100644 --- a/common.php +++ b/common.php @@ -225,36 +225,36 @@ $config = get_config(true); // 본인인증 또는 쇼핑몰 사용시에만 secure; SameSite=None 로 설정합니다. if( $config['cf_cert_use'] || (defined('G5_YOUNGCART_VER') && G5_YOUNGCART_VER) ) { - // Chrome 80 버전부터 아래 이슈 대응 - // https://developers-kr.googleblog.com/2020/01/developers-get-ready-for-new.html?fbclid=IwAR0wnJFGd6Fg9_WIbQPK3_FxSSpFLqDCr9bjicXdzy--CCLJhJgC9pJe5ss - if(!function_exists('session_start_samesite')) { - function session_start_samesite($options = array()) - { + // Chrome 80 버전부터 아래 이슈 대응 + // https://developers-kr.googleblog.com/2020/01/developers-get-ready-for-new.html?fbclid=IwAR0wnJFGd6Fg9_WIbQPK3_FxSSpFLqDCr9bjicXdzy--CCLJhJgC9pJe5ss + if(!function_exists('session_start_samesite')) { + function session_start_samesite($options = array()) + { global $g5; - - $res = @session_start($options); - + + $res = @session_start($options); + // IE 브라우저 또는 엣지브라우저 또는 IOS 모바일과 http환경에서는 secure; SameSite=None을 설정하지 않습니다. if( preg_match('/Edge/i', $_SERVER['HTTP_USER_AGENT']) || preg_match('/(iPhone|iPod|iPad).*AppleWebKit.*Safari/i', $_SERVER['HTTP_USER_AGENT']) || preg_match('~MSIE|Internet Explorer~i', $_SERVER['HTTP_USER_AGENT']) || preg_match('~Trident/7.0(; Touch)?; rv:11.0~',$_SERVER['HTTP_USER_AGENT']) || ! (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS']=='on') ){ return $res; } - $headers = headers_list(); - krsort($headers); - foreach ($headers as $header) { - if (!preg_match('~^Set-Cookie: PHPSESSID=~', $header)) continue; - $header = preg_replace('~; secure(; HttpOnly)?$~', '', $header) . '; secure; SameSite=None'; - header($header, false); + $headers = headers_list(); + krsort($headers); + foreach ($headers as $header) { + if (!preg_match('~^Set-Cookie: PHPSESSID=~', $header)) continue; + $header = preg_replace('~; secure(; HttpOnly)?$~', '', $header) . '; secure; SameSite=None'; + header($header, false); $g5['session_cookie_samesite'] = 'none'; - break; - } - return $res; - } - } + break; + } + return $res; + } + } - session_start_samesite(); + session_start_samesite(); } else { - @session_start(); + @session_start(); } //============================================================================== diff --git a/config.php b/config.php index 1c54cdc90..a6aea249c 100644 --- a/config.php +++ b/config.php @@ -5,7 +5,7 @@ ********************/ define('G5_VERSION', '그누보드5'); -define('G5_GNUBOARD_VER', '5.4.2.9'); +define('G5_GNUBOARD_VER', '5.4.3'); // 이 상수가 정의되지 않으면 각각의 개별 페이지는 별도로 실행될 수 없음 define('_GNUBOARD_', true); diff --git a/css/default.css b/css/default.css index 98f21daaa..d70724799 100644 --- a/css/default.css +++ b/css/default.css @@ -80,7 +80,7 @@ border:1px solid #558ab7 !important; #logo {float:left;padding:30px 0 0} -.hd_sch_wr {float:left;padding:30px 0;;width:445px;margin-left:65px} +.hd_sch_wr {float:left;padding:30px 0;width:445px;margin-left:65px} #hd_sch h3 {position:absolute;font-size:0;line-height:0;overflow:hidden} #hd_sch {border-radius:30px;overflow:hidden} #hd_sch #sch_stx {float:left;width:385px;height:45px;padding-left:10px;border-radius:30px 0 0 30px;background:#2c2c2c;border:0;border-right:0;font-size:1.25em;color:#fff} diff --git a/js/common.js b/js/common.js index 071245a70..f5e61e91e 100644 --- a/js/common.js +++ b/js/common.js @@ -165,33 +165,9 @@ function set_cookie(name, value, expirehours, domain) // 쿠키 얻음 function get_cookie(name) { - var find_sw = false; - var start, end; - var i = 0; - - for (i=0; i<= document.cookie.length; i++) - { - start = i; - end = start + name.length; - - if(document.cookie.substring(start, end) == name) - { - find_sw = true - break - } - } - - if (find_sw == true) - { - start = end + 1; - end = document.cookie.indexOf(";", start); - - if(end < start) - end = document.cookie.length; - - return unescape(document.cookie.substring(start, end)); - } - return ""; + var match = document.cookie.match(new RegExp('(^| )' + name + '=([^;]+)')); + if (match) return unescape(match[2]); + return ""; } // 쿠키 지움 @@ -559,10 +535,12 @@ function font_resize(id, rmv_class, add_class, othis) { var $el = $("#"+id); - $el.removeClass(rmv_class).addClass(add_class); + if((typeof rmv_class !== "undefined" && rmv_class) || (typeof add_class !== "undefined" && add_class)){ + $el.removeClass(rmv_class).addClass(add_class); - set_cookie("ck_font_resize_rmv_class", rmv_class, 1, g5_cookie_domain); - set_cookie("ck_font_resize_add_class", add_class, 1, g5_cookie_domain); + set_cookie("ck_font_resize_rmv_class", rmv_class, 1, g5_cookie_domain); + set_cookie("ck_font_resize_add_class", add_class, 1, g5_cookie_domain); + } if(typeof othis !== "undefined"){ $(othis).addClass('select').siblings().removeClass('select'); diff --git a/lib/common.lib.php b/lib/common.lib.php index d0fca65d1..ad1648eaa 100644 --- a/lib/common.lib.php +++ b/lib/common.lib.php @@ -1606,15 +1606,19 @@ function sql_query($sql, $error=G5_DISPLAY_SQL_ERROR, $link=null) } } + $end_time = $is_debug ? get_microtime() : 0; + if($result && $is_debug) { // 여기에 실행한 sql문을 화면에 표시하는 로직 넣기 $g5_debug['sql'][] = array( 'sql' => $sql, 'start_time' => $start_time, - 'end_time' => get_microtime(), + 'end_time' => $end_time, ); } + run_event('sql_query_after', $result, $sql, $start_time, $end_time); + return $result; } diff --git a/lib/uri.lib.php b/lib/uri.lib.php index 6221fc865..ed889d711 100644 --- a/lib/uri.lib.php +++ b/lib/uri.lib.php @@ -16,13 +16,13 @@ function get_pretty_url($folder, $no='', $query_string='', $action='') return $url; } - // use shortten url - if($config['cf_bbs_rewrite']) { - + // use shortten url + if($config['cf_bbs_rewrite']) { + $segments[0] = G5_URL; if( $folder === 'content' && $no ){ // 내용관리 - + $segments[1] = $folder; if( $config['cf_bbs_rewrite'] > 1 ){ @@ -36,32 +36,32 @@ function get_pretty_url($folder, $no='', $query_string='', $action='') } else if(in_array($folder, $boards)) { // 게시판 - $segments[1] = $folder; + $segments[1] = $folder; - if($no) { + if($no) { if( $config['cf_bbs_rewrite'] > 1 ){ - $get_write = get_write( $g5['write_prefix'].$folder, $no , true); - - $segments[2] = $get_write['wr_seo_title'] ? urlencode($get_write['wr_seo_title']).'/' : urlencode($no); + $get_write = get_write( $g5['write_prefix'].$folder, $no , true); + + $segments[2] = $get_write['wr_seo_title'] ? urlencode($get_write['wr_seo_title']).'/' : urlencode($no); } else { $segments[2] = urlencode($no); } - } else if($action) { + } else if($action) { $segments[2] = urlencode($action); } - } else { + } else { $segments[1] = $folder; - if($no) { - $no_array = explode("=", $no); - $no_value = end($no_array); + if($no) { + $no_array = explode("=", $no); + $no_value = end($no_array); $segments[2] = urlencode($no_value); - } - } + } + } if($query_string) { // If the first character of the query string is '&', replace it with '?'. @@ -72,33 +72,33 @@ function get_pretty_url($folder, $no='', $query_string='', $action='') } } - } else { // don't use shortten url - if(in_array($folder, $boards)) { - $url = G5_BBS_URL. '/board.php?bo_table='. $folder; - if($no) { - $url .= '&wr_id='. $no; - } - if($query_string) { + } else { // don't use shortten url + if(in_array($folder, $boards)) { + $url = G5_BBS_URL. '/board.php?bo_table='. $folder; + if($no) { + $url .= '&wr_id='. $no; + } + if($query_string) { if(substr($query_string, 0, 1) !== '&') { $url .= '&'; } - $url .= $query_string; - } - } else { - $url = G5_BBS_URL. '/'.$folder.'.php'; + $url .= $query_string; + } + } else { + $url = G5_BBS_URL. '/'.$folder.'.php'; if($no) { - $url .= ($folder === 'content') ? '?co_id='. $no : '?'. $no; - } + $url .= ($folder === 'content') ? '?co_id='. $no : '?'. $no; + } if($query_string) { $url .= ($no ? '?' : '&'). $query_string; - } - } + } + } $segments[0] = $url; - } + } - return implode('/', $segments).$add_query; + return implode('/', $segments).$add_query; } function short_url_clean($string_url, $add_qry=''){ @@ -110,7 +110,7 @@ function short_url_clean($string_url, $add_qry=''){ $string_url = str_replace('&', '&', $string_url); $url=parse_url($string_url); $page_name = basename($url['path'],".php"); - + $array_page_names = run_replace('url_clean_page_names', array('board', 'write', 'content')); if( stripos(preg_replace('/^https?:/i', '', $string_url), preg_replace('/^https?:/i', '', G5_BBS_URL)) === false || ! in_array($page_name, $array_page_names) ){ //게시판이 아니면 리턴 @@ -119,19 +119,19 @@ function short_url_clean($string_url, $add_qry=''){ $return_url = ''; parse_str($url['query'], $vars); - - /* + + /* // 예) Array ( [scheme] => http [host] => sir.kr [path] => /bbs/board.php [query] => wr_id=1110870&bo_table=cm_free&cpage=1 [fragment] => c_1110946 ) - foreach($vars as $k => $v) { $page_name .= "/".$v; } - */ - + foreach($vars as $k => $v) { $page_name .= "/".$v; } + */ + if( $page_name === 'write' ){ $vars['action'] = 'write'; $allow_param_keys = array('bo_table'=>'', 'action'=>''); } else if( $page_name === 'content' ){ - $vars['action'] = 'content'; - $allow_param_keys = array('action'=>'', 'co_id'=>''); - } else { + $vars['action'] = 'content'; + $allow_param_keys = array('action'=>'', 'co_id'=>''); + } else { $allow_param_keys = array('bo_table'=>'', 'wr_id'=>''); } @@ -145,7 +145,7 @@ function short_url_clean($string_url, $add_qry=''){ if( $config['cf_bbs_rewrite'] > 1 && $page_name === 'board' && (isset($s['wr_id']) && $s['wr_id']) && (isset($s['bo_table']) && $s['bo_table']) ){ $get_write = get_write( get_write_table_name($s['bo_table']), $s['wr_id'], true); - + if( $get_write['wr_seo_title'] ){ unset($s['wr_id']); $s['wr_seo_title'] = urlencode($get_write['wr_seo_title']).'/'; @@ -175,8 +175,8 @@ function short_url_clean($string_url, $add_qry=''){ if( $add_qry ){ $add_param .= $add_param ? '&'.$add_qry : '?'.$add_qry; } - - foreach($s as $k => $v) { $return_url .= '/'.$v; } + + foreach($s as $k => $v) { $return_url .= '/'.$v; } return $host.$return_url.$add_param.$fragment; } diff --git a/mobile/skin/board/basic/style.css b/mobile/skin/board/basic/style.css index 17b5be269..6d548bfe0 100644 --- a/mobile/skin/board/basic/style.css +++ b/mobile/skin/board/basic/style.css @@ -44,7 +44,7 @@ #bo_list .bo_subject .fa-link {width:16px;line-height:16px;background:#edd3fd;color:#b451fd;text-align:center;font-size:10px;border-radius:2px;vertical-align:baseline} #bo_list .bo_subject .fa-heart {color:#ff0000;text-align:center;font-size:10px;border-radius:2px} #bo_list .bo_subject .new_icon {display:inline-block;width:16px;line-height:16px;font-size:0.833em;color:#23db79;background:#b9ffda;text-align:center;border-radius:2px;margin:0 4px;font-weight:bold;vertical-align:middle} -#bo_list .bo_subject .fa-lock {display:inline-block;line-height:16px;width:16px;font-size:0.833em;color:#4f818c;background:#cbe3e8;text-align:center;border-radius:2px;font-size:12px;border:1px solid #cbe3e8;vertical-align:baseline} +#bo_list .bo_subject .fa-lock {display:inline-block;line-height:16px;width:16px;color:#4f818c;background:#cbe3e8;text-align:center;border-radius:2px;font-size:12px;border:1px solid #cbe3e8;vertical-align:baseline} #bo_cate h2 {width:0;height:0;font-size:0;line-height:0;overflow:hidden} @@ -77,7 +77,7 @@ .bo_fx {margin-bottom:5px;padding:0 10px} .bo_fx:after {display:block;visibility:hidden;clear:both;content:""} .bo_fx ul {margin:0;padding:0;list-style:none} -#bo_list_total {margin:10px;text-align:center;padding:10px;text-align:center;background:#e3e7ec;color:#8b8b8b;border-radius:3px} +#bo_list_total {margin:10px;padding:10px;text-align:center;background:#e3e7ec;color:#8b8b8b;border-radius:3px} .btn_bo_user > li {float:left;text-align:center;margin-left:5px} .btn_bo_adm button {border:0;padding:0 10px;background:#d13f4a;color:#fff;text-decoration:none;vertical-align:middle} @@ -142,7 +142,7 @@ #bo_sch:after {display:block;visibility:hidden;clear:both;content:""} #bo_sch legend {position:absolute;margin:0;padding:0;font-size:0;line-height:0;text-indent:-9999em;overflow:hidden} #bo_sch select {border:0;height:38px;border-right:1px solid #f8f8f8;float:left;width:30%} -#bo_sch .sch_input {height:38px;border:0;padding:0;background-color:transparent;float:left;width:70%;padding:0 40px 0 10px} +#bo_sch .sch_input {height:38px;border:0;background-color:transparent;float:left;width:70%;padding:0 40px 0 10px} #bo_sch .sch_btn {height:38px;position:absolute;top:0;right:0;border:0;width:40px;background:none;font-size:15px} .view_is_list.btn_top {position:relative;z-index:auto;top:0;left:0} @@ -165,7 +165,7 @@ #bo_v_table {padding:10px;color:#999;font-size:0.9em;font-weight:bold} #bo_v_title {} -.bo_v_cate {display:inline-block;background:#e2eaf6;color:#3a8afd;border-radius:13px;line-height:20px;border-radius:5px;padding:0 5px;font-weight:bold} +.bo_v_cate {display:inline-block;background:#e2eaf6;color:#3a8afd;line-height:20px;border-radius:5px;padding:0 5px;font-weight:bold} .bo_v_tit {display:block;font-size:1.5em;margin:10px 0 0} #bo_v_info {padding:15px 0;color:#8e8e8e;line-height:20px} diff --git a/mobile/skin/board/basic/view.skin.php b/mobile/skin/board/basic/view.skin.php index 3cd9811ba..1810b6f39 100644 --- a/mobile/skin/board/basic/view.skin.php +++ b/mobile/skin/board/basic/view.skin.php @@ -159,7 +159,7 @@ jQuery(function($){ - + - +