diff --git a/bbs/download.php b/bbs/download.php index 504595b74..f0f70afb7 100644 --- a/bbs/download.php +++ b/bbs/download.php @@ -23,6 +23,7 @@ if (!$file['bf_file']) alert_close('파일 정보가 존재하지 않습니다.'); // JavaScript 불가일 때 +$js = (isset($_GET['js'])) ? $_GET['js'] : ''; if($js != 'on' && $board['bo_download_point'] < 0) { $msg = $file['bf_source'].' 파일을 다운로드 하시면 포인트가 차감('.number_format($board['bo_download_point']).'점)됩니다.\\n포인트는 게시물당 한번만 차감되며 다음에 다시 다운로드 하셔도 중복하여 차감하지 않습니다.\\n그래도 다운로드 하시겠습니까?'; $url1 = G5_BBS_URL.'/download.php?'.clean_query_string($_SERVER['QUERY_STRING'], false).'&js=on'; diff --git a/bbs/qalist.php b/bbs/qalist.php index 08fd0b175..63401e029 100644 --- a/bbs/qalist.php +++ b/bbs/qalist.php @@ -58,15 +58,33 @@ if(is_file($skin_file)) { $stx = trim($stx); if($stx) { - if (preg_match("/[a-zA-Z]/", $stx)) - $sql_search .= " and ( INSTR(LOWER(qa_subject), LOWER('$stx')) > 0 or INSTR(LOWER(qa_content), LOWER('$stx')) > 0 )"; - else - $sql_search .= " and ( INSTR(qa_subject, '$stx') > 0 or INSTR(qa_content, '$stx') > 0 ) "; + $sfl = trim($sfl); + if ($sfl) { + switch ($sfl) { + case "qa_subject" : + case "qa_content" : + case "qa_name" : + case "mb_id" : + break; + default : + $sfl = "qa_subject"; + } + } else { + $sfl = "qa_subject"; + } + $sql_search .= " and (`{$sfl}` like '%{$stx}%') "; } + // $stx = trim($stx); + // if($stx) { + // if (preg_match("/[a-zA-Z]/", $stx)) + // $sql_search .= " and ( INSTR(LOWER(qa_subject), LOWER('$stx')) > 0 or INSTR(LOWER(qa_content), LOWER('$stx')) > 0 )"; + // else + // $sql_search .= " and ( INSTR(qa_subject, '$stx') > 0 or INSTR(qa_content, '$stx') > 0 ) "; + // } $sql_order = " order by qa_num "; - $sql = " select count(*) as cnt + $sql = " select count(*) as cnt $sql_common $sql_search "; $row = sql_fetch($sql); diff --git a/bbs/visit_insert.inc.php b/bbs/visit_insert.inc.php index 4aa235bd3..28232b330 100644 --- a/bbs/visit_insert.inc.php +++ b/bbs/visit_insert.inc.php @@ -14,7 +14,9 @@ if (get_cookie('ck_visit_ip') != $_SERVER['REMOTE_ADDR']) $referer = ""; if (isset($_SERVER['HTTP_REFERER'])) $referer = escape_trim(clean_xss_tags(strip_tags($_SERVER['HTTP_REFERER']))); - $user_agent = escape_trim(clean_xss_tags(strip_tags($_SERVER['HTTP_USER_AGENT']))); + $user_agent = ''; + if (isset($_SERVER['HTTP_USER_AGENT'])) + $user_agent = escape_trim(clean_xss_tags(strip_tags($_SERVER['HTTP_USER_AGENT']))); $vi_browser = ''; $vi_os = ''; $vi_device = ''; diff --git a/bbs/write_update.php b/bbs/write_update.php index ac32277e6..dbda388ef 100644 --- a/bbs/write_update.php +++ b/bbs/write_update.php @@ -658,7 +658,7 @@ for ($i=(int)$row['max_bf_no']; $i>=0; $i--) $row2 = sql_fetch(" select bf_file from {$g5['board_file_table']} where bo_table = '{$bo_table}' and wr_id = '{$wr_id}' and bf_no = '{$i}' "); // 정보가 있다면 빠집니다. - if ($row2['bf_file']) break; + if (isset($row2['bf_file']) && $row2['bf_file']) break; // 그렇지 않다면 정보를 삭제합니다. sql_query(" delete from {$g5['board_file_table']} where bo_table = '{$bo_table}' and wr_id = '{$wr_id}' and bf_no = '{$i}' "); @@ -725,8 +725,10 @@ if (!($w == 'u' || $w == 'cu') && $config['cf_email_use'] && $board['bo_use_emai } // 옵션에 메일받기가 체크되어 있고, 게시자의 메일이 있다면 - if (strstr($wr['wr_option'], 'mail') && $wr['wr_email']) - $array_email[] = $wr['wr_email']; + if (isset($wr['wr_option']) && isset($wr['wr_email'])) { + if (strstr($wr['wr_option'], 'mail') && $wr['wr_email']) + $array_email[] = $wr['wr_email']; + } // 중복된 메일 주소는 제거 $unique_email = array_unique($array_email); diff --git a/common.php b/common.php index 6a01c430d..c5a48dcd7 100644 --- a/common.php +++ b/common.php @@ -232,7 +232,7 @@ function chrome_domain_session_name(){ '.maru.net', // 마루호스팅 ); - if(preg_match('/('.implode('|', $domain_array).')/i', $_SERVER['HTTP_HOST'])){ // 위의 도메인주소를 포함한 url접속시 기본세션이름을 변경한다. + if(isset($_SERVER['HTTP_HOST']) && preg_match('/('.implode('|', $domain_array).')/i', $_SERVER['HTTP_HOST'])){ // 위의 도메인주소를 포함한 url접속시 기본세션이름을 변경한다. if(! defined('G5_SESSION_NAME')) define('G5_SESSION_NAME', 'G5PHPSESSID'); @session_name(G5_SESSION_NAME); } @@ -343,8 +343,10 @@ if( $config['cf_cert_use'] || (defined('G5_YOUNGCART_VER') && G5_YOUNGCART_VER) $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; + if (isset($_SERVER['HTTP_USER_AGENT'])) { + 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(); diff --git a/lib/common.lib.php b/lib/common.lib.php index e98c1d149..73f122f66 100644 --- a/lib/common.lib.php +++ b/lib/common.lib.php @@ -850,12 +850,14 @@ function get_admin($admin='super', $fields='*') $is = true; } - if (($is && !$mb['mb_id']) || $admin == 'group') { + // if (($is && !$mb['mb_id']) || $admin == 'group') { + if (($is && !isset($mb['mb_id'])) || $admin == 'group') { $mb = sql_fetch("select {$fields} from {$g5['member_table']} where mb_id in ('{$group['gr_admin']}') limit 1 "); $is = true; } - if (($is && !$mb['mb_id']) || $admin == 'super') { + // if (($is && !$mb['mb_id']) || $admin == 'super') { + if (($is && !isset($mb['mb_id'])) || $admin == 'super') { $mb = sql_fetch("select {$fields} from {$g5['member_table']} where mb_id in ('{$config['cf_admin']}') limit 1 "); } @@ -2217,7 +2219,10 @@ function get_checked($field, $value) function is_mobile() { - return preg_match('/'.G5_MOBILE_AGENT.'/i', $_SERVER['HTTP_USER_AGENT']); + if (isset($_SERVER['HTTP_USER_AGENT'])) + return preg_match('/'.G5_MOBILE_AGENT.'/i', $_SERVER['HTTP_USER_AGENT']); + else + return ''; } @@ -2344,8 +2349,9 @@ function delete_editor_thumbnail($contents) for($i=0; $i제목'; + $str .= ''; + $str .= ''; + if ($is_admin) + $str .= ''; + + return run_replace('get_qa_sfl_select_options', $str, $sfl); +} + // 읽지 않은 메모 갯수 반환 function get_memo_not_read($mb_id, $add_where='') { diff --git a/mobile/shop/inicis/pay_approval.php b/mobile/shop/inicis/pay_approval.php index 5befa5b30..3ee89e888 100644 --- a/mobile/shop/inicis/pay_approval.php +++ b/mobile/shop/inicis/pay_approval.php @@ -182,7 +182,8 @@ if(isset($data['pp_id']) && !empty($data['pp_id'])) { $P_VACT_NUM = $_POST['P_VACT_NUM'] = isset($PAY['P_VACT_NUM']) ? $PAY['P_VACT_NUM'] : ''; $P_VACT_NAME = $_POST['P_VACT_NAME'] = isset($PAY['P_VACT_NAME']) ? iconv_utf8($PAY['P_VACT_NAME']) : ''; $P_VACT_BANK = $_POST['P_VACT_BANK'] = (isset($PAY['P_VACT_BANK_CODE']) && isset($BANK_CODE[$PAY['P_VACT_BANK_CODE']])) ? $BANK_CODE[$PAY['P_VACT_BANK_CODE']] : ''; - $P_CARD_ISSUER = $_POST['P_CARD_ISSUER'] = isset($CARD_CODE[$PAY['P_CARD_ISSUER_CODE']]) ? $CARD_CODE[$PAY['P_CARD_ISSUER_CODE']] : ''; + // $P_CARD_ISSUER = $_POST['P_CARD_ISSUER'] = isset($CARD_CODE[$PAY['P_CARD_ISSUER_CODE']]) ? $CARD_CODE[$PAY['P_CARD_ISSUER_CODE']] : ''; + $P_CARD_ISSUER = $_POST['P_CARD_ISSUER'] = isset($CARD_CODE[$PAY['P_FN_CD1']]) ? $CARD_CODE[$PAY['P_FN_CD1']] : ''; $P_UNAME = $_POST['P_UNAME'] = isset($PAY['P_UNAME']) ? iconv_utf8($PAY['P_UNAME']) : ''; $check_keys = array('od_name', 'od_tel', 'od_pwd', 'od_hp', 'od_zip', 'od_addr1', 'od_addr2', 'od_addr3', 'od_addr_jibeon', 'od_email', 'ad_default', 'ad_subject', 'od_hope_date', 'od_b_name', 'od_b_tel', 'od_b_hp', 'od_b_zip', 'od_b_addr1', 'od_b_addr2', 'od_b_addr3', 'od_b_addr_jibeon', 'od_memo', 'od_settle_case', 'max_temp_point', 'od_temp_point', 'od_send_cost', 'od_send_cost2', 'od_bank_account', 'od_deposit_name', 'od_test', 'od_ip'); diff --git a/mobile/skin/qa/basic/list.skin.php b/mobile/skin/qa/basic/list.skin.php index 6d3b8cd3c..2f102f5e2 100644 --- a/mobile/skin/qa/basic/list.skin.php +++ b/mobile/skin/qa/basic/list.skin.php @@ -115,6 +115,11 @@ add_stylesheet('', 0); 게시물 검색
+ + + diff --git a/mobile/skin/qa/basic/style.css b/mobile/skin/qa/basic/style.css index add0d9d45..4b0f4eebb 100644 --- a/mobile/skin/qa/basic/style.css +++ b/mobile/skin/qa/basic/style.css @@ -136,7 +136,8 @@ #bo_sch {background:#fff;border:1px solid #d0d3db;position:relative;margin:10px} #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 .sch_input {float:left;width:100%;height:38px;border:0;padding:0;background-color:transparent;padding:0 0 0 10px} +#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_btn {height:38px;position:absolute;top:0;right:0;border:0;width:40px;background:none;font-size:15px} diff --git a/plugin/editor/cheditor5/imageUpload/upload.php b/plugin/editor/cheditor5/imageUpload/upload.php index 9594f8c7a..f305b65d3 100644 --- a/plugin/editor/cheditor5/imageUpload/upload.php +++ b/plugin/editor/cheditor5/imageUpload/upload.php @@ -77,7 +77,7 @@ run_event('cheditor_photo_upload', $data_dir, $data_url); // $tempfile = $_FILES['file']['tmp_name']; $filename = $_FILES['file']['name']; - +$filename_len = strrpos($filename, "."); $type = substr($filename, strrpos($filename, ".")+1); $found = false; switch ($type) { @@ -89,7 +89,7 @@ switch ($type) { $found = true; } -if ($found != true) { +if ($found != true || $filename_len != 23) { exit; } diff --git a/plugin/sns/twitter/redirect.php b/plugin/sns/twitter/redirect.php index 4bc1586aa..505b3e047 100644 --- a/plugin/sns/twitter/redirect.php +++ b/plugin/sns/twitter/redirect.php @@ -13,8 +13,8 @@ $connection = new TwitterOAuth(CONSUMER_KEY, CONSUMER_SECRET); $request_token = $connection->getRequestToken(OAUTH_CALLBACK); /* Save temporary credentials to session. */ -$_SESSION['oauth_token'] = $token = $request_token['oauth_token']; -$_SESSION['oauth_token_secret'] = $request_token['oauth_token_secret']; +$_SESSION['oauth_token'] = $token = @$request_token['oauth_token']; +$_SESSION['oauth_token_secret'] = @$request_token['oauth_token_secret']; //print_r2($_SESSION); exit; diff --git a/plugin/sns/twitter/twitteroauth/twitteroauth.php b/plugin/sns/twitter/twitteroauth/twitteroauth.php index af8712229..49bee1457 100644 --- a/plugin/sns/twitter/twitteroauth/twitteroauth.php +++ b/plugin/sns/twitter/twitteroauth/twitteroauth.php @@ -77,7 +77,7 @@ class TwitterOAuth { $parameters['oauth_callback'] = $oauth_callback; $request = $this->oAuthRequest($this->requestTokenURL(), 'GET', $parameters); $token = OAuthUtil::parse_parameters($request); - $this->token = new OAuthConsumer($token['oauth_token'], $token['oauth_token_secret']); + $this->token = new OAuthConsumer(@$token['oauth_token'], @$token['oauth_token_secret']); return $token; } diff --git a/shop/naverpay/naverpay_item.php b/shop/naverpay/naverpay_item.php index 0dffee7d3..5aa270779 100644 --- a/shop/naverpay/naverpay_item.php +++ b/shop/naverpay/naverpay_item.php @@ -7,15 +7,18 @@ $query = $_SERVER['QUERY_STRING']; $vars = array(); foreach(explode('&', $query) as $pair) { - list($key, $value) = explode('=', $pair); + @list($key, $value) = explode('=', $pair); $key = urldecode($key); $value = preg_replace("/[^A-Za-z0-9\-_]/", "", urldecode($value)); $vars[$key][] = $value; } -$itemIds = $vars['ITEM_ID']; +if (isset($vars['ITEM_ID'])) + $itemIds = $vars['ITEM_ID']; +else + $itemIds = array(); -if (count($itemIds) < 1) { +if (is_null($itemIds) || count($itemIds) < 1) { exit('ITEM_ID 는 필수입니다.'); } diff --git a/skin/member/basic/login.skin.php b/skin/member/basic/login.skin.php index 1cf0239a2..55971bed3 100644 --- a/skin/member/basic/login.skin.php +++ b/skin/member/basic/login.skin.php @@ -39,7 +39,7 @@ add_stylesheet('', - + diff --git a/skin/qa/basic/list.skin.php b/skin/qa/basic/list.skin.php index 56df884ee..47fdfb615 100644 --- a/skin/qa/basic/list.skin.php +++ b/skin/qa/basic/list.skin.php @@ -41,6 +41,11 @@ add_stylesheet('', 0); 게시물 검색 + + +
diff --git a/skin/qa/basic/style.css b/skin/qa/basic/style.css index 2fa15e019..4c0abb64a 100644 --- a/skin/qa/basic/style.css +++ b/skin/qa/basic/style.css @@ -111,7 +111,7 @@ box-shadow:inset 0 2px 5px rgb(33, 135, 202)} .bo_sch select {border:0;width:100%;height:40px;border:1px solid #d0d3db;border-radius:2px;-webkit-box-shadow:inset 0 1px 1px rgba(0, 0, 0, .075); -moz-box-shadow:inset 0 1px 1px rgba(0, 0, 0, .075); box-shadow:inset 0 1px 1px rgba(0, 0, 0, .075)} -.bo_sch .sch_bar {display:inline-block;width:100%;clear:both;border:1px solid #d0d3db;border-radius:2px;-webkit-box-shadow:inset 0 1px 1px rgba(0, 0, 0, .075); +.bo_sch .sch_bar {display:inline-block;width:100%;clear:both;margin-top:15px;border:1px solid #d0d3db;border-radius:2px;-webkit-box-shadow:inset 0 1px 1px rgba(0, 0, 0, .075); -moz-box-shadow:inset 0 1px 1px rgba(0, 0, 0, .075); box-shadow:inset 0 1px 1px rgba(0, 0, 0, .075)} .bo_sch .sch_input {width:250px;height:38px;border:0;padding:0;background-color:transparent;float:left} diff --git a/skin/shop/basic/boxbanner.skin.php b/skin/shop/basic/boxbanner.skin.php index d6bd9fd3e..03be8e7ac 100644 --- a/skin/shop/basic/boxbanner.skin.php +++ b/skin/shop/basic/boxbanner.skin.php @@ -23,7 +23,7 @@ for ($i=0; $row=sql_fetch_array($result); $i++) $banner = ''; $size = getimagesize($bimg); echo '
  • '.PHP_EOL; - if ($row['bn_url'][0] == '#') + if (preg_match("/^#/", $row['bn_url'])) $banner .= ''; else if ($row['bn_url'] && $row['bn_url'] != 'http://') { $banner .= ''; diff --git a/theme/basic/mobile/skin/qa/basic/list.skin.php b/theme/basic/mobile/skin/qa/basic/list.skin.php index 6d3b8cd3c..2f102f5e2 100644 --- a/theme/basic/mobile/skin/qa/basic/list.skin.php +++ b/theme/basic/mobile/skin/qa/basic/list.skin.php @@ -115,6 +115,11 @@ add_stylesheet('', 0); 게시물 검색 + + + diff --git a/theme/basic/mobile/skin/qa/basic/style.css b/theme/basic/mobile/skin/qa/basic/style.css index add0d9d45..4b0f4eebb 100644 --- a/theme/basic/mobile/skin/qa/basic/style.css +++ b/theme/basic/mobile/skin/qa/basic/style.css @@ -136,7 +136,8 @@ #bo_sch {background:#fff;border:1px solid #d0d3db;position:relative;margin:10px} #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 .sch_input {float:left;width:100%;height:38px;border:0;padding:0;background-color:transparent;padding:0 0 0 10px} +#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_btn {height:38px;position:absolute;top:0;right:0;border:0;width:40px;background:none;font-size:15px} diff --git a/theme/basic/skin/qa/basic/list.skin.php b/theme/basic/skin/qa/basic/list.skin.php index 56df884ee..47fdfb615 100644 --- a/theme/basic/skin/qa/basic/list.skin.php +++ b/theme/basic/skin/qa/basic/list.skin.php @@ -41,6 +41,11 @@ add_stylesheet('', 0); 게시물 검색 + + +
    diff --git a/theme/basic/skin/qa/basic/style.css b/theme/basic/skin/qa/basic/style.css index 2fa15e019..4c0abb64a 100644 --- a/theme/basic/skin/qa/basic/style.css +++ b/theme/basic/skin/qa/basic/style.css @@ -111,7 +111,7 @@ box-shadow:inset 0 2px 5px rgb(33, 135, 202)} .bo_sch select {border:0;width:100%;height:40px;border:1px solid #d0d3db;border-radius:2px;-webkit-box-shadow:inset 0 1px 1px rgba(0, 0, 0, .075); -moz-box-shadow:inset 0 1px 1px rgba(0, 0, 0, .075); box-shadow:inset 0 1px 1px rgba(0, 0, 0, .075)} -.bo_sch .sch_bar {display:inline-block;width:100%;clear:both;border:1px solid #d0d3db;border-radius:2px;-webkit-box-shadow:inset 0 1px 1px rgba(0, 0, 0, .075); +.bo_sch .sch_bar {display:inline-block;width:100%;clear:both;margin-top:15px;border:1px solid #d0d3db;border-radius:2px;-webkit-box-shadow:inset 0 1px 1px rgba(0, 0, 0, .075); -moz-box-shadow:inset 0 1px 1px rgba(0, 0, 0, .075); box-shadow:inset 0 1px 1px rgba(0, 0, 0, .075)} .bo_sch .sch_input {width:250px;height:38px;border:0;padding:0;background-color:transparent;float:left} diff --git a/version.php b/version.php index 089ceab54..e44e7b826 100644 --- a/version.php +++ b/version.php @@ -2,7 +2,7 @@ if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가 define('G5_VERSION', '그누보드5'); -define('G5_GNUBOARD_VER', '5.4.15.1'); +define('G5_GNUBOARD_VER', '5.4.16'); // 그누보드5.4.5.5 버전과 영카트5.4.5.5.1 버전을 합쳐서 그누보드5.4.6 버전에서 시작함 (kagla-210617) // G5_YOUNGCART_VER 이 상수를 사용하는 곳이 있으므로 주석 처리 해제함 // 그누보드5.4.6 이상 버전 부터는 영카트를 그누보드에 포함하여 배포하므로 영카트5의 버전은 의미가 없습니다.