diff --git a/adm/sms_admin/config_update.php b/adm/sms_admin/config_update.php index 04f4818d5..ec18b2ec8 100644 --- a/adm/sms_admin/config_update.php +++ b/adm/sms_admin/config_update.php @@ -8,16 +8,15 @@ check_demo(); $g5['title'] = "SMS 기본설정"; +// 회신번호 체크 +if(!check_vaild_callback($cf_phone)) + alert('회신번호가 올바르지 않습니다.'); + $userinfo = get_icode_userinfo($cf_icode_id, $cf_icode_pw); if ($userinfo['code'] == '202') alert('아이코드 아이디와 패스워드가 맞지 않습니다.'); -if ($cf_member == '1') - $cf_member = 1; -else - $cf_member = 0; - $res = sql_fetch("select * from ".$g5['sms5_config_table']." limit 1"); if (!$res) diff --git a/adm/sms_admin/sms_write.php b/adm/sms_admin/sms_write.php index b63d3dd71..1016f1d5e 100644 --- a/adm/sms_admin/sms_write.php +++ b/adm/sms_admin/sms_write.php @@ -114,7 +114,7 @@ if ($config['cf_sms_use'] == 'icode') { // 아이코드 사용
- +
diff --git a/adm/sms_admin/sms_write_send.php b/adm/sms_admin/sms_write_send.php index f256c3e41..333b58c7c 100644 --- a/adm/sms_admin/sms_write_send.php +++ b/adm/sms_admin/sms_write_send.php @@ -12,6 +12,9 @@ $wr_message = clean_xss_tags(trim($wr_message)); if (!$wr_reply) win_close_alert('회신 번호를 숫자, - 로 입력해주세요.'); +if(!check_vaild_callback($wr_reply)) + win_close_alert('회신 번호를 올바르게 입력해 주십시오.'); + if (!$wr_message) win_close_alert('메세지를 입력해주세요.'); @@ -42,6 +45,9 @@ while ($row = array_shift($send_list)) while ($row = sql_fetch_array($qry)) { $row['bk_hp'] = get_hp($row['bk_hp'], 0); + + if(!$row['bk_hp']) continue; + if ($wr_overlap && array_overlap($hps, $row['bk_hp'])) { $overlap++; array_push( $duplicate_data['hp'], $row['bk_hp'] ); @@ -63,6 +69,8 @@ while ($row = array_shift($send_list)) $hp = get_hp($row['mb_hp'], 0); $mb_id = $row['mb_id']; + if(!$hp) continue; + if ($wr_overlap && array_overlap($hps, $hp)) { $overlap++; array_push( $duplicate_data['hp'], $row['bk_hp'] ); @@ -84,6 +92,8 @@ while ($row = array_shift($send_list)) $hp = get_hp($item[$i][1], 0); $name = $item[$i][0]; + if(!$hp) continue; + if ($wr_overlap && array_overlap($hps, $hp)) { $overlap++; array_push( $duplicate_data['hp'], $row['bk_hp'] ); @@ -99,6 +109,8 @@ while ($row = array_shift($send_list)) $row = sql_fetch("select * from {$g5['sms5_book_table']} where bk_no='$item[$i]'"); $row['bk_hp'] = get_hp($row['bk_hp'], 0); + if(!$row['bk_hp']) continue; + if ($wr_overlap && array_overlap($hps, $row['bk_hp'])) { $overlap++; array_push( $duplicate_data['hp'], $row['bk_hp'] ); diff --git a/lib/common.lib.php b/lib/common.lib.php index 1a1220ff5..86d9e31fa 100644 --- a/lib/common.lib.php +++ b/lib/common.lib.php @@ -3151,4 +3151,29 @@ function get_skin_url($dir, $skin) return str_replace(G5_PATH, G5_URL, $skin_path); } + +// 발신번호 유효성 체크 +function check_vaild_callback($callback){ + $_callback = preg_replace('/[^0-9]/','', $callback); + + /** + * 1588 로시작하면 총8자리인데 7자리라 차단 + * 02 로시작하면 총9자리 또는 10자리인데 11자리라차단 + * 1366은 그자체가 원번호이기에 다른게 붙으면 차단 + * 030으로 시작하면 총10자리 또는 11자리인데 9자리라차단 + */ + + if( substr($_callback,0,4) == '1588') if( strlen($_callback) != 8) return false; + if( substr($_callback,0,2) == '02') if( strlen($_callback) != 9 && strlen($_callback) != 10 ) return false; + if( substr($_callback,0,3) == '030') if( strlen($_callback) != 10 && strlen($_callback) != 11 ) return false; + + if( !preg_match("/^(02|0[3-6]\d|01(0|1|3|5|6|7|8|9)|070|080|007)\-?\d{3,4}\-?\d{4,5}$/",$_callback) && + !preg_match("/^(15|16|18)\d{2}\-?\d{4,5}$/",$_callback) ){ + return false; + } else if( preg_match("/^(02|0[3-6]\d|01(0|1|3|5|6|7|8|9)|070|080)\-?0{3,4}\-?\d{4}$/",$_callback )) { + return false; + } else { + return true; + } +} ?> \ No newline at end of file diff --git a/plugin/sms5/sms5.lib.php b/plugin/sms5/sms5.lib.php index 8979454dc..175c74f36 100644 --- a/plugin/sms5/sms5.lib.php +++ b/plugin/sms5/sms5.lib.php @@ -7,19 +7,6 @@ if (!defined('_GNUBOARD_')) exit; ** *************************************************************************/ -// 스킨디렉토리를 SELECT 형식으로 얻음 -function get_sms5_skin_select($skin_gubun, $id, $name, $selected='', $event='') -{ - $skins = get_skin_dir($skin_gubun, G5_SMS5_PATH); - $str = ""; - return $str; -} - // 한페이지에 보여줄 행, 현재페이지, 총페이지수, URL function sms5_sub_paging($write_pages, $cur_page, $total_page, $url, $add="", $starget="") {