그누보드 [G5] 일반페이지에서 SMS5 ( icode ) 연동해서 문자 발송
페이지 정보
본문
그누보드5 홈페이지에서 SMS5 ( icode ) 연동 문자 발송하고 그것을 특정 게시판에 저장하는 방법입니다.
1. sms_PC.php
<script>
function input_sms_check() {
var f = document.sms_form; // 본문 form에서의 name 값으로 수정
if(f.sms_name.value == '') {
alert('이름을 입력해 주십시오.');
f.sms_name.focus();
return false;
}
function checkPhone(sms_tel) {
var regExp = /^\d{2,4}-\d{3,4}-\d{4}$/;
if(regExp.test(sms_tel)) { // test 는 정규 Methods 입니다. test는 변경없음
return true;
} else {
return false;
}
}
if(f.sms_tel.value == '') {
alert('연락처를 입력해 주십시오.');
f.sms_tel.focus();
return false;
}
else {
if(!checkPhone(f.sms_tel.value)) {
alert('잘못된 전화번호입니다. 숫자, - 를 포함한 숫자만 입력하세요. 예) 02-XXXX-XXXX');
f.sms_tel.focus();
return false;
}
}
var agree = document.getElementsByName("sms_agree");
if (!agree[0].checked) {
alert("개인정보 수집 및 이용에 동의하셔야 회원가입 하실 수 있습니다.");
agree[0].focus();
return false;
}
}
</script>
<style>
/* 퀵메뉴 */
#quick2 { position:relative; position:fixed; bottom:20px; right:20px; width:197px; margin-left:-px; z-index:9999; }
#quick2 h2 { position:absolute; font-size:0; line-height:0; overflow:hidden; }
#quick2 .quick_brand { width:197px; margin-bottom:11px; }
#quick2 .quick_request { width:197px; font-family:'NanumBarunGothic'; }
#quick2 .quick_request ul {padding: 0;background:#fff;zoom:1; border:1px solid #b2b2b2; }
#quick2 .quick_request ul:after {display:block;visibility:hidden;clear:both;content:"" }
#quick2 .quick_request li { width:100%; padding:1px 0; text-align:center; }
/* SMS CSS */
.sms_input { width:170px; height:31px; border:1px solid #fff; border-bottom:1px solid #b2b2b2; font-size:1.25em; font-family:'NanumBarunGothic'; }
a.sms_button { display:inline-block; padding:3px 4px; border:1px solid #3b3c3f; background:#4b545e; color:#fff; text-decoration:none; vertical-align:middle; font-size:0.9em; }
.sms_submit { width:86%; height:40px; font-weight:bold; background:#a21414; color:#fff;border:0px; font-size:1.3em; }
.go_btn2 { width:197px; height:50px; font-size:1.5em; background:#3e373f; border:0px; color:#FFF; }
/* SMS Layer Popup */
.sms_layer { display:none; position:fixed; _position:absolute; top:0; left:0; width:100%; height:100%; z-index:555; }
.sms_layer .sms_layer_bg { position:absolute; top:0; left:0; width:100%; height:100%; background:#000; opacity:.5; filter:alpha(opacity=50); }
.sms_layer .sms_layer_pop { display:block; }
.sms_layer_pop { display:none; position:absolute; top:50%; left:50%; width:570px; height:auto; background-color:#f7f7f7; z-index:10; }
.sms_layer_pop .sms_layer_pop_container { padding:20px 20px; overflow:hidden; }
.sms_layer_pop .sms_layer_btn { text-align:right; position:absolute; left:575px; top:-15px; }
.sms_layer_close { padding:0px; font-size:5em; }
</style>
<div id="quick2">
<!-- 레이어 팝업 -->
<div class="sms_layer">
<div class="sms_layer_bg"></div>
<div id="sms_layer2" class="sms_layer_pop">
<div class="sms_layer_pop_container">
<div class="sms_layer_btn">
<a href="#" class="sms_layer_close"><i class="fa fa-times" aria-hidden="true"></i></a>
</div>
개인정보보호법 제30조에 따라 서비스 이용을 위한 아래 개인정보 수집.이용 동의를 받습니다.<br>
<br>
1. 개인정보를 다음의 목적을 위하여 개인정보를 처리하고, 그 목적 이외로는 이용하지 않습니다.<br>
이용자 식별 및 본인여부 확인, 목적 계약 이행을 위한 연락민원 등 고객 고충 처리<br>
<br>
2. 개인정보 수집항목 : 성명, 전화번호<br>
<br>
3. 개인정보의 처리 및 보유기간 : 게시글 삭제시 즉시 삭제
</div>
</div>
</div>
<!-- 레이어 팝업 end -->
<form name="sms_form" method="post" action="<?php echo G5_URL; ?>/page/sms_ok.php" onSubmit="return input_sms_check(this)">
<input type="hidden" name="w" value="">
<input type="hidden" name="sms_secret" value='secret'>
<input type="hidden" name="sms_html" value='html1'>
<input type="hidden" name="sms_mail" value='mail'>
<input type="hidden" name="sms_url" value="<?php echo $_SERVER['REQUEST_URI']; ?>">
<input type="hidden" name="sms_subject" value="상담 신청">
<input type="hidden" name="sms_email" value=''>
<input type="hidden" name="sms_device" value="PC">
<div id="sms_form" class="quick_request">
<ul>
<li style="padding:16px 0;"><img src="<?php echo G5_IMG_URL; ?>/quick_sms_title.png" alt="상담신청"></li>
<li><input type="text" class="sms_input" name="sms_name" id="sms_name" itemname="이름" placeholder="이름"></li>
<li><input type="text" class="sms_input" name="sms_tel" id="sms_tel" itemname="연락처" placeholder="연락처 02-XXXX-XXXX"></li>
<li style="color:#555; padding:10px 0 5px 0; font-size:1.2em">
개인정보 취급방침 <a href="#" class="sms_button" onclick="sms_layer_open('sms_layer2');return false;">내용보기</a>
</li>
<li style="color:#555; font-size:1.25em; font-weight:bold;">
<input type="radio" name="sms_agree" value="1"> 동의
<input type="radio" name="sms_agree" value="0"> 동의안함</span>
</li>
<li style="padding:8px 0 10px 0;"><button type="submit" id="send_btn" class="sms_submit">상담신청</button></li>
</ul>
</div>
</form>
<div><button type="button" id="go_btn" class="go_btn2">▲ TOP</button></div>
</div>
<script type="text/javascript">
// SMS 레이어 팝업
function sms_layer_open(el){
var temp = $('#' + el);
var bg = temp.prev().hasClass('sms_layer_bg'); //dimmed 레이어를 감지하기 위한 boolean 변수
if(bg){
$('.sms_layer').fadeIn(); // 'sms_layer_bg' 클래스가 존재하면 레이어가 나타나고 배경은 dimmed 된다.
}else{
temp.fadeIn();
}
// 화면의 중앙에 레이어를 띄운다.
if (temp.outerHeight() < $(document).height() ) temp.css('margin-top', '-'+temp.outerHeight()/2+'px');
else temp.css('top', '0px');
if (temp.outerWidth() < $(document).width() ) temp.css('margin-left', '-'+temp.outerWidth()/2+'px');
else temp.css('left', '0px');
temp.find('a.sms_layer_close').click(function(e){
if(bg){
$('.sms_layer').fadeOut(); // 'sms_layer_bg' 클래스가 존재하면 레이어를 사라지게 한다.
}else{
temp.fadeOut();
}
e.preventDefault();
});
$('.sms_layer .sms_layer_bg').click(function(e){ // 배경을 클릭하면 레이어를 사라지게 하는 이벤트 핸들러
$('.sms_layer').fadeOut();
e.preventDefault();
});
}
// 페이지 위로가기
$(function() {
$("#go_btn").on("click", function() {
$("html, body").animate({scrollTop:0}, '500');
return false;
});
});
</script>
2. sms_MOBILE.php
<script type="text/javascript">
function input_sms_check() {
var f = document.sms_form; // 본문 form에서의 name 값으로 수정
if(f.sms_name.value == '') {
alert('이름을 입력해 주십시오.');
f.sms_name.focus();
return false;
}
function checkPhone(sms_tel) {
var regExp = /^\d{2,4}-\d{3,4}-\d{4}$/;
if(regExp.test(sms_tel)) { // test 는 정규 Methods 입니다. test는 변경없음
return true;
} else {
return false;
}
}
if(f.sms_tel.value == '') {
alert('연락처를 입력해 주십시오.');
f.sms_tel.focus();
return false;
}
else {
if(!checkPhone(f.sms_tel.value)) {
alert('잘못된 전화번호입니다. 숫자, - 를 포함한 숫자만 입력하세요. 예) 02-XXXX-XXXX');
f.sms_tel.focus();
return false;
}
}
if(f.wr_2.value == '') {
alert('창업희망 브랜드를 입력해 주십시오.');
f.wr_2.focus();
return false;
}
var agree = document.getElementsByName("sms_agree");
if (!agree[0].checked) {
alert("개인정보 수집 및 이용에 동의하셔야 회원가입 하실 수 있습니다.");
agree[0].focus();
return false;
}
}
</script>
<style>
#simpleSearch { position:fixed; right:0; bottom:0; z-index:10; width:100%; margin:0 auto; }
/* SMS CSS */
.sms_input { width:90%; height:25px; text-align:center; border:1px solid #fff; border-bottom:1px solid #fff; font-size:1.1em; font-family:'NanumBarunGothic'; }
a.sms_button { display:inline-block; padding:3px 4px; border:1px solid #3b3c3f; background:#4b545e; color:#fff; text-decoration:none; vertical-align:middle; font-size:0.9em; }
.sms_submit { width:86%; height:40px; font-weight:bold; background:#a21414; color:#fff;border:0px; font-size:1.3em; }
.go_btn2 { width:197px; height:50px; font-size:1.5em; background:#3e373f; border:0px; color:#FFF; }
/* SMS Layer Popup */
.sms_layer { display:none; position:fixed; _position:absolute; top:0; left:0; width:100%; height:100%; z-index:555; }
.sms_layer .sms_layer_bg { position:absolute; top:0; left:0; width:100%; height:100%; background:#000; opacity:.5; filter:alpha(opacity=50); }
.sms_layer .sms_layer_pop { display:block; }
.sms_layer_pop { display:none; position:absolute; top:50%; left:0; width:auto; height:auto; background-color:#f7f7f7; z-index:10; }
.sms_layer_pop .sms_layer_pop_container { padding:20px 20px; overflow:hidden; }
.sms_layer_pop .sms_layer_btn { text-align:right; position:absolute; left:575px; top:-15px; }
.sms_layer_close { padding:0px; font-size:5em; }
</style>
<div style="height:150px;"><?php // 하단 고정창 간격확보하기용 ?></div>
<div id="simpleSearch">
<div style="background:#e9e9e9; padding:0px 0; width:100%;">
<!-- 레이어 팝업 -->
<div class="sms_layer">
<div class="sms_layer_bg"></div>
<div id="sms_layer2" class="sms_layer_pop">
<div class="sms_layer_pop_container">
<div class="sms_layer_btn">
<a href="#" class="sms_layer_close"><i class="fa fa-times" aria-hidden="true"></i></a>
</div>
개인정보보호법 제30조에 따라 서비스 이용을 위한 아래 개인정보 수집.이용 동의를 받습니다.<br>
<br>
1. 개인정보를 다음의 목적을 위하여 개인정보를 처리하고, 그 목적 이외로는 이용하지 않습니다.<br>
이용자 식별 및 본인여부 확인, 목적 계약 이행을 위한 연락민원 등 고객 고충 처리<br>
<br>
2. 개인정보 수집항목 : 성명, 전화번호<br>
<br>
3. 개인정보의 처리 및 보유기간 : 게시글 삭제시 즉시 삭제
</div>
</div>
</div>
<!-- 레이어 팝업 end -->
<form name="sms_form" method="post" action="<?php echo G5_URL; ?>/page/sms_ok.php" onSubmit="return input_sms_check(this)">
<input type="hidden" name="w" value="">
<input type="hidden" name="sms_secret" value='secret'>
<input type="hidden" name="sms_html" value='html1'>
<input type="hidden" name="sms_mail" value='mail'>
<input type="hidden" name="sms_url" value="<?php echo $_SERVER['REQUEST_URI']; ?>">
<input type="hidden" name="sms_subject" value="상담 신청">
<input type="hidden" name="sms_email" value=''>
<input type="hidden" name="sms_device" value="MOBILE">
<div style="background:url(<?php echo G5_IMG_URL; ?>/v1/m_copy_line.png) top repeat-x; text-align:center;">
<div style="padding:10px 0 10px 0; text-align:center;"><img src="<?php echo G5_IMG_URL; ?>/v1/m_sms_title.png" alt="월간창업 창업상담신청" style="height:20px;"></div>
<center>
<ul style="margin:0 20px;">
<li style="float:left; width:33.3%;"><input type="text" name="sms_name" id="sms_name" class="sms_input" itemname="이름" placeholder="이름"></li>
<li style="float:left; width:33.3%;"><input type="number" pattern="[0-9]*" name="sms_tel" id="sms_tel" class="sms_input" itemname="연락처" placeholder="02-XXXX-XXXX"></li>
<li style="float:left; width:33.3%;"><input type="text" name="sms_brand" id="sms_brand" class="sms_input" itemname="브랜드" placeholder="브랜드"></li>
<div style="margin-left:5px; color:#555; padding:10px 0 5px 0; float:left;">개인정보 취급방침 <a href="#" class="sms_button" onclick="sms_layer_open('sms_layer2');return false;">내용보기</a></div>
<div style="margin-left:15px; color:#555; font-size:1.0em; font-weight:bold; float:left;padding:13px 0 0 0; "><input type="radio" name="sms_agree" value="1"> 동의 <input type="radio" name="sms_agree" value="0"> 동의안함</span></div>
</ul>
</center>
<div style="clear:both;"></div>
<div style="padding:5px 0; text-align:center;"><button type="submit" id="send_btn" style="width:90%; height:40px; font-size:1.3em; font-weight:bold; background:#a21414; color:#fff; border:0px;">상담신청</button></div>
</div>
</form>
</div>
</div>
<script>
// SMS 레이어 팝업
function sms_layer_open(el){
var temp = $('#' + el);
var bg = temp.prev().hasClass('sms_layer_bg'); //dimmed 레이어를 감지하기 위한 boolean 변수
if(bg){
$('.sms_layer').fadeIn(); // 'sms_layer_bg' 클래스가 존재하면 레이어가 나타나고 배경은 dimmed 된다.
}else{
temp.fadeIn();
}
// 화면의 중앙에 레이어를 띄운다.
if (temp.outerHeight() < $(document).height() ) temp.css('margin-top', '-'+temp.outerHeight()/2+'px');
else temp.css('top', '0px');
if (temp.outerWidth() < $(document).width() ) temp.css('margin-left', '-'+temp.outerWidth()/2+'px');
else temp.css('left', '0px');
temp.find('a.sms_layer_close').click(function(e){
if(bg){
$('.sms_layer').fadeOut(); // 'sms_layer_bg' 클래스가 존재하면 레이어를 사라지게 한다.
}else{
temp.fadeOut();
}
e.preventDefault();
});
$('.sms_layer .sms_layer_bg').click(function(e){ // 배경을 클릭하면 레이어를 사라지게 하는 이벤트 핸들러
$('.sms_layer').fadeOut();
e.preventDefault();
});
}
</script>
3. sms_ok.php
<?php
include_once('_common.php');
$wr_name = $_POST['sms_name'];
$tel = $_POST["sms_tel"];
$sms_url = $_POST["sms_url"];
if (!($wr_name || $tel)) {
alert('입력값 확인해주세요.', $sms_url);
exit;
}
// 게시판 저장 기초자료
$bo_table = '게시판이름'; // 테이블 정의
$wr_email = $_POST['sms_email'];
$wr_subject = $_POST['sms_subject'];
if ($wr_subject == "") {
$wr_subject = "문자상담";
}
$wr_content = $_POST['sms_content'];
$wr_password = $_POST['sms_password'];
if ($wr_password=="") $wr_password = $tel;
$ca_name = "";
$html = $_POST['sms_html'];
$secret = $_POST['sms_secret'];
$mail = $_POST['sms_mail'];
$wr_link1 = "";
$wr_link2 = "";
$wr_1 = $_POST['sms_device'];
$wr_2 = $_POST['sms_name'];
$wr_3 = $_POST['sms_tel'];
$wr_4 = $_POST['wr_4'];
$wr_5 = $_POST['wr_5'];
$wr_6 = $_POST['wr_6'];
$wr_7 = $_POST['wr_7'];
$wr_8 = $_POST['wr_8'];
$wr_9 = $_POST['wr_9'];
$wr_10 = $_POST['wr_10'];
$write_table = $g5['write_prefix'].$bo_table;
if($member['mb_id']) {
$mb_id = $member['mb_id'];
if (!$wr_name) {
$wr_name = $member['mb_name'];;
}
$wr_password = $member['mb_password'];
$wr_email = $member['mb_email'];
} else {
$wr_name = $wr_name;
$wr_password = get_encrypt_string($wr_password); //비밀번호
$wr_email = $wr_email;
}
// 게시판이 실제 존재할때만 게시판에 저장
$qry_sms = "select * from {$g5['board_table']} where bo_table = '{$bo_table}' ";
$row_sms = sql_fetch_array(sql_query($qry_sms));
if (!$row_sms['bo_table']) {
alert('존재하지 않는 게시판입니다.', G5_URL);
exit;
}
if ($row_sms['bo_table']) {
$wr_num = get_next_num($write_table);
//제목 내용을 변경해 주시면 됩니다
$sql_sms1 = "insert into {$write_table}
set wr_num = '{$wr_num}',
wr_reply = '',
wr_id = '{$wr_id}',
wr_comment = 0,
ca_name = '{$ca_name}',
wr_option = '{$html},{$secret},{$mail}',
wr_subject = '{$wr_subject}',
wr_content = '{$wr_content}',
wr_link1 = '{$wr_link1}',
wr_link2 = '{$wr_link2}',
wr_link1_hit = 0,
wr_link2_hit = 0,
wr_hit = 0,
wr_good = 0,
wr_nogood = 0,
mb_id = '{$mb_id}',
wr_password = '{$wr_password}',
wr_name = '{$wr_name}',
wr_email = '{$wr_email}',
wr_datetime = '".G5_TIME_YMDHIS."',
wr_last = '".G5_TIME_YMDHIS."',
wr_ip = '{$_SERVER['REMOTE_ADDR']}',
wr_1 = '{$wr_1}',
wr_2 = '{$wr_2}',
wr_3 = '{$wr_3}',
wr_4 = '{$wr_4}',
wr_5 = '{$wr_5}',
wr_6 = '{$wr_6}',
wr_7 = '{$wr_7}',
wr_8 = '{$wr_8}',
wr_9 = '{$wr_9}',
wr_10 = '{$wr_10}'
";
sql_query($sql_sms1);
$wr_id = sql_insert_id();
// 부모 아이디에 UPDATE
sql_query(" update {$write_table} set wr_parent = '{$wr_id}' where wr_id = '{$wr_id}' ");
// 새글 INSERT
sql_query(" insert into {$g5['board_new_table']} ( bo_table, wr_id, wr_parent, bn_datetime, mb_id ) values ( '{$bo_table}', '{$wr_id}', '{$wr_id}', '".G5_TIME_YMDHIS."', '{$member['mb_id']}' ) ");
// 게시글 증가
sql_query("update {$g5['board_table']} set bo_count_write = bo_count_write + 1 where bo_table = '{$bo_table}'");
}
// icode 문자발송(SMS)
if (!$config['cf_icode_server_ip']) $config['cf_icode_server_ip'] = '211.172.232.124';
if (!$config['cf_icode_server_port']) $config['cf_icode_server_port'] = '7295';
if ($config['cf_sms_use'] && $config['cf_icode_id'] && $config['cf_icode_pw']) {
$userinfo = get_icode_userinfo($config['cf_icode_id'], $config['cf_icode_pw']);
}
if ($userinfo['payment'] == 'A') {
$cf_icode_server_port = "7295";
$icode_check = "y";
} else if ($userinfo['payment'] == 'C') {
$cf_icode_server_port = "7296";
$icode_check = "y";
} else {
$cf_icode_server_port = "7295";
$icode_check = "n";
}
if ($tel && $wr_content && $icode_check=="y") {
// 문자전송 코드 시작
include_once(G5_LIB_PATH."/icode.sms.lib.php");
// sms 발송 기초자료
$Caller = $wr_name; // 발신자 이름
$wr_reply = $tel; // 발신자 전화번호
$wr_message = $wr_content; // 문자내용
$recv_number = $sms5['cf_phone']; // SMS5 환경설정 전화번호
//echo $recv_number
// 예약자 연락처의 유효성을 검사한다
$var = explode('-', $wr_reply);
$arr = array('02', '031', '032', '033', '041', '042', '043', '044', '051', '052', '053', '054', '055', '061', '062', '063', '064', '070', '010', '011', '016', '017', '018', '019');
if(in_array($var['0'], $arr) == false || preg_match('/^[0-9]{3,4}$/', $var['1']) == false || preg_match('/^[0-9]{4}$/', $var['2']) == false)
alert('연락처가 올바른 형식이 아닙니다.');
if (!trim($wr_reply))
win_close_alert('회신 번호를 입력해주세요.');
if (!trim($wr_message))
win_close_alert('메세지를 입력해주세요.');
if (!trim($recv_number))
win_close_alert('문자 메세지를 받을 휴대폰번호를 입력해주세요.');
$wr_total = "1";
$wr_by = $_POST["wr_by"]; // 예약전송 - 년
$wr_bm = $_POST["wr_bm"]; // 예약전송 - 월
$wr_bd = $_POST["wr_bd"]; // 예약전송 - 일
$wr_bh = $_POST["wr_bh"]; // 예약전송 - 시
$wr_bi = $_POST["wr_bi"]; // 예약전송 - 분
// 예약전송
if ($wr_by && $wr_bm && $wr_bd && $wr_bh && $wr_bi) {
$wr_booking = "$wr_by-$wr_bm-$wr_bd $wr_bh:$wr_bi"; // DB저장
$booking = $wr_by.$wr_bm.$wr_bd.$wr_bh.$wr_bi; // icode 전송
} else {
$wr_booking = '';
$booking = '';
}
if ($config['cf_sms_use'] != 'icode') {
alert('기본환경설정에서 icode sms 사용이 비활성화 되어 있습니다.');
}
//include_once "sms_function.php";
$dest = str_replace('-', '', trim($recv_number)); // icode 전송
$callBack = str_replace('-', '', trim($wr_reply)); // icode 전송
$wr_message = conv_unescape_nl($wr_message);
$SMS = new SMS; // SMS 연결
$SMS->SMS_con($config['cf_icode_server_ip'], $config['cf_icode_id'], $config['cf_icode_pw'], $config['cf_icode_server_port']);
$SMS->Add($dest, $callBack, $config['cf_icode_id'], iconv("utf-8", "euc-kr", stripslashes($wr_message)), "");
$SMS->Send();
$SMS = new SMS5;
$SMS->SMS_con($config['cf_icode_server_ip'], $config['cf_icode_id'], $config['cf_icode_pw'], $config['cf_icode_server_port']);
$result = $SMS->Add($dest, $callBack, $Caller, $wr_message, $booking, $wr_total);
include G5_PLUGIN_PATH."/sms5/sms5.lib.php";
if ( ! function_exists('get_hp')) {
function get_hp($hp, $hyphen=1)
{
global $g5;
if (!is_hp($hp)) return '';
if ($hyphen) $preg = "$1-$2-$3"; else $preg = "$1$2$3";
$hp = str_replace('-', '', trim($hp));
$hp = preg_replace("/^(01[016789])([0-9]{3,4})([0-9]{4})$/", $preg, $hp);
if ($g5['sms5_demo'])
$hp = '0100000000';
return $hp;
}
}
if ($result)
{
$result = $SMS->Send();
if ($result) //SMS 서버에 접속했습니다.
{
$row = sql_fetch("select max(wr_no) as wr_no from ".$g5['sms5_write_table']."");
if ($row)
$wr_no = $row['wr_no'] + 1;
else
$wr_no = 1;
sql_query("insert into ".$g5['sms5_write_table']." set wr_no='".$wr_no."', wr_renum=0, wr_reply='".$wr_reply."', wr_message='".$wr_message."', wr_booking='".$wr_booking."', wr_total='".$wr_total."', wr_datetime='".G5_TIME_YMDHIS."'");
$wr_success = 0;
$wr_failure = 0;
$count = 0;
$result = $SMS->Result;
list($phone, $code) = explode(":", $result);
if (substr($code,0,5) == "Error") {
$hs_code = substr($code,6,2);
switch ($hs_code) {
case '02': // "02:형식오류"
$hs_memo = "형식이 잘못되어 전송이 실패하였습니다.";
break;
case '23': // "23:인증실패,데이터오류,전송날짜오류"
$hs_memo = "데이터를 다시 확인해 주시기바랍니다.";
break;
case '97': // "97:잔여코인부족"
$hs_memo = "잔여코인이 부족합니다.";
break;
case '98': // "98:사용기간만료"
$hs_memo = "사용기간이 만료되었습니다.";
break;
case '99': // "99:인증실패"
$hs_memo = "인증 받지 못하였습니다. 계정을 다시 확인해 주세요.";
break;
default: // "미 확인 오류"
$hs_memo = "알 수 없는 오류로 전송이 실패하었습니다.";
break;
}
$wr_failure++;
$hs_flag = 0;
} else {
$hs_code = $code;
$hs_memo = get_hp($recv_number, 1)."로 전송했습니다.";
$wr_success++;
$hs_flag = 1;
}
$row = array_shift($list);
$row['bk_hp'] = get_hp($row['bk_hp'], 1);
$log = array_shift($SMS->Log);
sql_query("insert into ".$g5['sms5_history_table']." set wr_no='".$wr_no."', wr_renum=0, bg_no='1', mb_id='".$row['mb_id']."', bk_no='1', hs_name='".addslashes($row['bk_name'])."', hs_hp='".$wr_reply."', hs_datetime='".G5_TIME_YMDHIS."', hs_flag='".$hs_flag."', hs_code='".$hs_code."', hs_memo='".addslashes($hs_memo)."', hs_log='".addslashes($log)."'");
$SMS->Init(); // 보관하고 있던 결과값을 지웁니다.
sql_query("update ".$g5['sms5_write_table']." set wr_success='".$wr_success."', wr_failure='".$wr_failure."', wr_memo='".$str_serialize."' where wr_no='".$wr_no."' and wr_renum=0");
}
else win_close_alert("에러: SMS 서버와 통신이 불안정합니다.");
}
else win_close_alert("에러: SMS 데이터 입력도중 에러가 발생하였습니다.");
function win_close_alert($msg) {
$html = "<script>
act = window.open('".G5_ADMIN_URL."/sms_admin/sms_ing.php', 'act', 'width=300, height=200');
act.close();
alert('$msg');
history.back();</script>";
echo $html;
exit;
}
}
if ($bo_table && $tel && $wr_content) {
alert("신청되었습니다.",$sms_url);
} elseif ($bo_table) {
alert("등록되었습니다.",$sms_url);
} else {
alert("Thanks",G5_URL);
}
?>
참고자료
http://sir.co.kr/qa/?wr_id=14933
https://sir.kr/qa/282849
1. sms_PC.php
<script>
function input_sms_check() {
var f = document.sms_form; // 본문 form에서의 name 값으로 수정
if(f.sms_name.value == '') {
alert('이름을 입력해 주십시오.');
f.sms_name.focus();
return false;
}
function checkPhone(sms_tel) {
var regExp = /^\d{2,4}-\d{3,4}-\d{4}$/;
if(regExp.test(sms_tel)) { // test 는 정규 Methods 입니다. test는 변경없음
return true;
} else {
return false;
}
}
if(f.sms_tel.value == '') {
alert('연락처를 입력해 주십시오.');
f.sms_tel.focus();
return false;
}
else {
if(!checkPhone(f.sms_tel.value)) {
alert('잘못된 전화번호입니다. 숫자, - 를 포함한 숫자만 입력하세요. 예) 02-XXXX-XXXX');
f.sms_tel.focus();
return false;
}
}
var agree = document.getElementsByName("sms_agree");
if (!agree[0].checked) {
alert("개인정보 수집 및 이용에 동의하셔야 회원가입 하실 수 있습니다.");
agree[0].focus();
return false;
}
}
</script>
<style>
/* 퀵메뉴 */
#quick2 { position:relative; position:fixed; bottom:20px; right:20px; width:197px; margin-left:-px; z-index:9999; }
#quick2 h2 { position:absolute; font-size:0; line-height:0; overflow:hidden; }
#quick2 .quick_brand { width:197px; margin-bottom:11px; }
#quick2 .quick_request { width:197px; font-family:'NanumBarunGothic'; }
#quick2 .quick_request ul {padding: 0;background:#fff;zoom:1; border:1px solid #b2b2b2; }
#quick2 .quick_request ul:after {display:block;visibility:hidden;clear:both;content:"" }
#quick2 .quick_request li { width:100%; padding:1px 0; text-align:center; }
/* SMS CSS */
.sms_input { width:170px; height:31px; border:1px solid #fff; border-bottom:1px solid #b2b2b2; font-size:1.25em; font-family:'NanumBarunGothic'; }
a.sms_button { display:inline-block; padding:3px 4px; border:1px solid #3b3c3f; background:#4b545e; color:#fff; text-decoration:none; vertical-align:middle; font-size:0.9em; }
.sms_submit { width:86%; height:40px; font-weight:bold; background:#a21414; color:#fff;border:0px; font-size:1.3em; }
.go_btn2 { width:197px; height:50px; font-size:1.5em; background:#3e373f; border:0px; color:#FFF; }
/* SMS Layer Popup */
.sms_layer { display:none; position:fixed; _position:absolute; top:0; left:0; width:100%; height:100%; z-index:555; }
.sms_layer .sms_layer_bg { position:absolute; top:0; left:0; width:100%; height:100%; background:#000; opacity:.5; filter:alpha(opacity=50); }
.sms_layer .sms_layer_pop { display:block; }
.sms_layer_pop { display:none; position:absolute; top:50%; left:50%; width:570px; height:auto; background-color:#f7f7f7; z-index:10; }
.sms_layer_pop .sms_layer_pop_container { padding:20px 20px; overflow:hidden; }
.sms_layer_pop .sms_layer_btn { text-align:right; position:absolute; left:575px; top:-15px; }
.sms_layer_close { padding:0px; font-size:5em; }
</style>
<div id="quick2">
<!-- 레이어 팝업 -->
<div class="sms_layer">
<div class="sms_layer_bg"></div>
<div id="sms_layer2" class="sms_layer_pop">
<div class="sms_layer_pop_container">
<div class="sms_layer_btn">
<a href="#" class="sms_layer_close"><i class="fa fa-times" aria-hidden="true"></i></a>
</div>
개인정보보호법 제30조에 따라 서비스 이용을 위한 아래 개인정보 수집.이용 동의를 받습니다.<br>
<br>
1. 개인정보를 다음의 목적을 위하여 개인정보를 처리하고, 그 목적 이외로는 이용하지 않습니다.<br>
이용자 식별 및 본인여부 확인, 목적 계약 이행을 위한 연락민원 등 고객 고충 처리<br>
<br>
2. 개인정보 수집항목 : 성명, 전화번호<br>
<br>
3. 개인정보의 처리 및 보유기간 : 게시글 삭제시 즉시 삭제
</div>
</div>
</div>
<!-- 레이어 팝업 end -->
<form name="sms_form" method="post" action="<?php echo G5_URL; ?>/page/sms_ok.php" onSubmit="return input_sms_check(this)">
<input type="hidden" name="w" value="">
<input type="hidden" name="sms_secret" value='secret'>
<input type="hidden" name="sms_html" value='html1'>
<input type="hidden" name="sms_mail" value='mail'>
<input type="hidden" name="sms_url" value="<?php echo $_SERVER['REQUEST_URI']; ?>">
<input type="hidden" name="sms_subject" value="상담 신청">
<input type="hidden" name="sms_email" value=''>
<input type="hidden" name="sms_device" value="PC">
<div id="sms_form" class="quick_request">
<ul>
<li style="padding:16px 0;"><img src="<?php echo G5_IMG_URL; ?>/quick_sms_title.png" alt="상담신청"></li>
<li><input type="text" class="sms_input" name="sms_name" id="sms_name" itemname="이름" placeholder="이름"></li>
<li><input type="text" class="sms_input" name="sms_tel" id="sms_tel" itemname="연락처" placeholder="연락처 02-XXXX-XXXX"></li>
<li style="color:#555; padding:10px 0 5px 0; font-size:1.2em">
개인정보 취급방침 <a href="#" class="sms_button" onclick="sms_layer_open('sms_layer2');return false;">내용보기</a>
</li>
<li style="color:#555; font-size:1.25em; font-weight:bold;">
<input type="radio" name="sms_agree" value="1"> 동의
<input type="radio" name="sms_agree" value="0"> 동의안함</span>
</li>
<li style="padding:8px 0 10px 0;"><button type="submit" id="send_btn" class="sms_submit">상담신청</button></li>
</ul>
</div>
</form>
<div><button type="button" id="go_btn" class="go_btn2">▲ TOP</button></div>
</div>
<script type="text/javascript">
// SMS 레이어 팝업
function sms_layer_open(el){
var temp = $('#' + el);
var bg = temp.prev().hasClass('sms_layer_bg'); //dimmed 레이어를 감지하기 위한 boolean 변수
if(bg){
$('.sms_layer').fadeIn(); // 'sms_layer_bg' 클래스가 존재하면 레이어가 나타나고 배경은 dimmed 된다.
}else{
temp.fadeIn();
}
// 화면의 중앙에 레이어를 띄운다.
if (temp.outerHeight() < $(document).height() ) temp.css('margin-top', '-'+temp.outerHeight()/2+'px');
else temp.css('top', '0px');
if (temp.outerWidth() < $(document).width() ) temp.css('margin-left', '-'+temp.outerWidth()/2+'px');
else temp.css('left', '0px');
temp.find('a.sms_layer_close').click(function(e){
if(bg){
$('.sms_layer').fadeOut(); // 'sms_layer_bg' 클래스가 존재하면 레이어를 사라지게 한다.
}else{
temp.fadeOut();
}
e.preventDefault();
});
$('.sms_layer .sms_layer_bg').click(function(e){ // 배경을 클릭하면 레이어를 사라지게 하는 이벤트 핸들러
$('.sms_layer').fadeOut();
e.preventDefault();
});
}
// 페이지 위로가기
$(function() {
$("#go_btn").on("click", function() {
$("html, body").animate({scrollTop:0}, '500');
return false;
});
});
</script>
2. sms_MOBILE.php
<script type="text/javascript">
function input_sms_check() {
var f = document.sms_form; // 본문 form에서의 name 값으로 수정
if(f.sms_name.value == '') {
alert('이름을 입력해 주십시오.');
f.sms_name.focus();
return false;
}
function checkPhone(sms_tel) {
var regExp = /^\d{2,4}-\d{3,4}-\d{4}$/;
if(regExp.test(sms_tel)) { // test 는 정규 Methods 입니다. test는 변경없음
return true;
} else {
return false;
}
}
if(f.sms_tel.value == '') {
alert('연락처를 입력해 주십시오.');
f.sms_tel.focus();
return false;
}
else {
if(!checkPhone(f.sms_tel.value)) {
alert('잘못된 전화번호입니다. 숫자, - 를 포함한 숫자만 입력하세요. 예) 02-XXXX-XXXX');
f.sms_tel.focus();
return false;
}
}
if(f.wr_2.value == '') {
alert('창업희망 브랜드를 입력해 주십시오.');
f.wr_2.focus();
return false;
}
var agree = document.getElementsByName("sms_agree");
if (!agree[0].checked) {
alert("개인정보 수집 및 이용에 동의하셔야 회원가입 하실 수 있습니다.");
agree[0].focus();
return false;
}
}
</script>
<style>
#simpleSearch { position:fixed; right:0; bottom:0; z-index:10; width:100%; margin:0 auto; }
/* SMS CSS */
.sms_input { width:90%; height:25px; text-align:center; border:1px solid #fff; border-bottom:1px solid #fff; font-size:1.1em; font-family:'NanumBarunGothic'; }
a.sms_button { display:inline-block; padding:3px 4px; border:1px solid #3b3c3f; background:#4b545e; color:#fff; text-decoration:none; vertical-align:middle; font-size:0.9em; }
.sms_submit { width:86%; height:40px; font-weight:bold; background:#a21414; color:#fff;border:0px; font-size:1.3em; }
.go_btn2 { width:197px; height:50px; font-size:1.5em; background:#3e373f; border:0px; color:#FFF; }
/* SMS Layer Popup */
.sms_layer { display:none; position:fixed; _position:absolute; top:0; left:0; width:100%; height:100%; z-index:555; }
.sms_layer .sms_layer_bg { position:absolute; top:0; left:0; width:100%; height:100%; background:#000; opacity:.5; filter:alpha(opacity=50); }
.sms_layer .sms_layer_pop { display:block; }
.sms_layer_pop { display:none; position:absolute; top:50%; left:0; width:auto; height:auto; background-color:#f7f7f7; z-index:10; }
.sms_layer_pop .sms_layer_pop_container { padding:20px 20px; overflow:hidden; }
.sms_layer_pop .sms_layer_btn { text-align:right; position:absolute; left:575px; top:-15px; }
.sms_layer_close { padding:0px; font-size:5em; }
</style>
<div style="height:150px;"><?php // 하단 고정창 간격확보하기용 ?></div>
<div id="simpleSearch">
<div style="background:#e9e9e9; padding:0px 0; width:100%;">
<!-- 레이어 팝업 -->
<div class="sms_layer">
<div class="sms_layer_bg"></div>
<div id="sms_layer2" class="sms_layer_pop">
<div class="sms_layer_pop_container">
<div class="sms_layer_btn">
<a href="#" class="sms_layer_close"><i class="fa fa-times" aria-hidden="true"></i></a>
</div>
개인정보보호법 제30조에 따라 서비스 이용을 위한 아래 개인정보 수집.이용 동의를 받습니다.<br>
<br>
1. 개인정보를 다음의 목적을 위하여 개인정보를 처리하고, 그 목적 이외로는 이용하지 않습니다.<br>
이용자 식별 및 본인여부 확인, 목적 계약 이행을 위한 연락민원 등 고객 고충 처리<br>
<br>
2. 개인정보 수집항목 : 성명, 전화번호<br>
<br>
3. 개인정보의 처리 및 보유기간 : 게시글 삭제시 즉시 삭제
</div>
</div>
</div>
<!-- 레이어 팝업 end -->
<form name="sms_form" method="post" action="<?php echo G5_URL; ?>/page/sms_ok.php" onSubmit="return input_sms_check(this)">
<input type="hidden" name="w" value="">
<input type="hidden" name="sms_secret" value='secret'>
<input type="hidden" name="sms_html" value='html1'>
<input type="hidden" name="sms_mail" value='mail'>
<input type="hidden" name="sms_url" value="<?php echo $_SERVER['REQUEST_URI']; ?>">
<input type="hidden" name="sms_subject" value="상담 신청">
<input type="hidden" name="sms_email" value=''>
<input type="hidden" name="sms_device" value="MOBILE">
<div style="background:url(<?php echo G5_IMG_URL; ?>/v1/m_copy_line.png) top repeat-x; text-align:center;">
<div style="padding:10px 0 10px 0; text-align:center;"><img src="<?php echo G5_IMG_URL; ?>/v1/m_sms_title.png" alt="월간창업 창업상담신청" style="height:20px;"></div>
<center>
<ul style="margin:0 20px;">
<li style="float:left; width:33.3%;"><input type="text" name="sms_name" id="sms_name" class="sms_input" itemname="이름" placeholder="이름"></li>
<li style="float:left; width:33.3%;"><input type="number" pattern="[0-9]*" name="sms_tel" id="sms_tel" class="sms_input" itemname="연락처" placeholder="02-XXXX-XXXX"></li>
<li style="float:left; width:33.3%;"><input type="text" name="sms_brand" id="sms_brand" class="sms_input" itemname="브랜드" placeholder="브랜드"></li>
<div style="margin-left:5px; color:#555; padding:10px 0 5px 0; float:left;">개인정보 취급방침 <a href="#" class="sms_button" onclick="sms_layer_open('sms_layer2');return false;">내용보기</a></div>
<div style="margin-left:15px; color:#555; font-size:1.0em; font-weight:bold; float:left;padding:13px 0 0 0; "><input type="radio" name="sms_agree" value="1"> 동의 <input type="radio" name="sms_agree" value="0"> 동의안함</span></div>
</ul>
</center>
<div style="clear:both;"></div>
<div style="padding:5px 0; text-align:center;"><button type="submit" id="send_btn" style="width:90%; height:40px; font-size:1.3em; font-weight:bold; background:#a21414; color:#fff; border:0px;">상담신청</button></div>
</div>
</form>
</div>
</div>
<script>
// SMS 레이어 팝업
function sms_layer_open(el){
var temp = $('#' + el);
var bg = temp.prev().hasClass('sms_layer_bg'); //dimmed 레이어를 감지하기 위한 boolean 변수
if(bg){
$('.sms_layer').fadeIn(); // 'sms_layer_bg' 클래스가 존재하면 레이어가 나타나고 배경은 dimmed 된다.
}else{
temp.fadeIn();
}
// 화면의 중앙에 레이어를 띄운다.
if (temp.outerHeight() < $(document).height() ) temp.css('margin-top', '-'+temp.outerHeight()/2+'px');
else temp.css('top', '0px');
if (temp.outerWidth() < $(document).width() ) temp.css('margin-left', '-'+temp.outerWidth()/2+'px');
else temp.css('left', '0px');
temp.find('a.sms_layer_close').click(function(e){
if(bg){
$('.sms_layer').fadeOut(); // 'sms_layer_bg' 클래스가 존재하면 레이어를 사라지게 한다.
}else{
temp.fadeOut();
}
e.preventDefault();
});
$('.sms_layer .sms_layer_bg').click(function(e){ // 배경을 클릭하면 레이어를 사라지게 하는 이벤트 핸들러
$('.sms_layer').fadeOut();
e.preventDefault();
});
}
</script>
3. sms_ok.php
<?php
include_once('_common.php');
$wr_name = $_POST['sms_name'];
$tel = $_POST["sms_tel"];
$sms_url = $_POST["sms_url"];
if (!($wr_name || $tel)) {
alert('입력값 확인해주세요.', $sms_url);
exit;
}
// 게시판 저장 기초자료
$bo_table = '게시판이름'; // 테이블 정의
$wr_email = $_POST['sms_email'];
$wr_subject = $_POST['sms_subject'];
if ($wr_subject == "") {
$wr_subject = "문자상담";
}
$wr_content = $_POST['sms_content'];
$wr_password = $_POST['sms_password'];
if ($wr_password=="") $wr_password = $tel;
$ca_name = "";
$html = $_POST['sms_html'];
$secret = $_POST['sms_secret'];
$mail = $_POST['sms_mail'];
$wr_link1 = "";
$wr_link2 = "";
$wr_1 = $_POST['sms_device'];
$wr_2 = $_POST['sms_name'];
$wr_3 = $_POST['sms_tel'];
$wr_4 = $_POST['wr_4'];
$wr_5 = $_POST['wr_5'];
$wr_6 = $_POST['wr_6'];
$wr_7 = $_POST['wr_7'];
$wr_8 = $_POST['wr_8'];
$wr_9 = $_POST['wr_9'];
$wr_10 = $_POST['wr_10'];
$write_table = $g5['write_prefix'].$bo_table;
if($member['mb_id']) {
$mb_id = $member['mb_id'];
if (!$wr_name) {
$wr_name = $member['mb_name'];;
}
$wr_password = $member['mb_password'];
$wr_email = $member['mb_email'];
} else {
$wr_name = $wr_name;
$wr_password = get_encrypt_string($wr_password); //비밀번호
$wr_email = $wr_email;
}
// 게시판이 실제 존재할때만 게시판에 저장
$qry_sms = "select * from {$g5['board_table']} where bo_table = '{$bo_table}' ";
$row_sms = sql_fetch_array(sql_query($qry_sms));
if (!$row_sms['bo_table']) {
alert('존재하지 않는 게시판입니다.', G5_URL);
exit;
}
if ($row_sms['bo_table']) {
$wr_num = get_next_num($write_table);
//제목 내용을 변경해 주시면 됩니다
$sql_sms1 = "insert into {$write_table}
set wr_num = '{$wr_num}',
wr_reply = '',
wr_id = '{$wr_id}',
wr_comment = 0,
ca_name = '{$ca_name}',
wr_option = '{$html},{$secret},{$mail}',
wr_subject = '{$wr_subject}',
wr_content = '{$wr_content}',
wr_link1 = '{$wr_link1}',
wr_link2 = '{$wr_link2}',
wr_link1_hit = 0,
wr_link2_hit = 0,
wr_hit = 0,
wr_good = 0,
wr_nogood = 0,
mb_id = '{$mb_id}',
wr_password = '{$wr_password}',
wr_name = '{$wr_name}',
wr_email = '{$wr_email}',
wr_datetime = '".G5_TIME_YMDHIS."',
wr_last = '".G5_TIME_YMDHIS."',
wr_ip = '{$_SERVER['REMOTE_ADDR']}',
wr_1 = '{$wr_1}',
wr_2 = '{$wr_2}',
wr_3 = '{$wr_3}',
wr_4 = '{$wr_4}',
wr_5 = '{$wr_5}',
wr_6 = '{$wr_6}',
wr_7 = '{$wr_7}',
wr_8 = '{$wr_8}',
wr_9 = '{$wr_9}',
wr_10 = '{$wr_10}'
";
sql_query($sql_sms1);
$wr_id = sql_insert_id();
// 부모 아이디에 UPDATE
sql_query(" update {$write_table} set wr_parent = '{$wr_id}' where wr_id = '{$wr_id}' ");
// 새글 INSERT
sql_query(" insert into {$g5['board_new_table']} ( bo_table, wr_id, wr_parent, bn_datetime, mb_id ) values ( '{$bo_table}', '{$wr_id}', '{$wr_id}', '".G5_TIME_YMDHIS."', '{$member['mb_id']}' ) ");
// 게시글 증가
sql_query("update {$g5['board_table']} set bo_count_write = bo_count_write + 1 where bo_table = '{$bo_table}'");
}
// icode 문자발송(SMS)
if (!$config['cf_icode_server_ip']) $config['cf_icode_server_ip'] = '211.172.232.124';
if (!$config['cf_icode_server_port']) $config['cf_icode_server_port'] = '7295';
if ($config['cf_sms_use'] && $config['cf_icode_id'] && $config['cf_icode_pw']) {
$userinfo = get_icode_userinfo($config['cf_icode_id'], $config['cf_icode_pw']);
}
if ($userinfo['payment'] == 'A') {
$cf_icode_server_port = "7295";
$icode_check = "y";
} else if ($userinfo['payment'] == 'C') {
$cf_icode_server_port = "7296";
$icode_check = "y";
} else {
$cf_icode_server_port = "7295";
$icode_check = "n";
}
if ($tel && $wr_content && $icode_check=="y") {
// 문자전송 코드 시작
include_once(G5_LIB_PATH."/icode.sms.lib.php");
// sms 발송 기초자료
$Caller = $wr_name; // 발신자 이름
$wr_reply = $tel; // 발신자 전화번호
$wr_message = $wr_content; // 문자내용
$recv_number = $sms5['cf_phone']; // SMS5 환경설정 전화번호
//echo $recv_number
// 예약자 연락처의 유효성을 검사한다
$var = explode('-', $wr_reply);
$arr = array('02', '031', '032', '033', '041', '042', '043', '044', '051', '052', '053', '054', '055', '061', '062', '063', '064', '070', '010', '011', '016', '017', '018', '019');
if(in_array($var['0'], $arr) == false || preg_match('/^[0-9]{3,4}$/', $var['1']) == false || preg_match('/^[0-9]{4}$/', $var['2']) == false)
alert('연락처가 올바른 형식이 아닙니다.');
if (!trim($wr_reply))
win_close_alert('회신 번호를 입력해주세요.');
if (!trim($wr_message))
win_close_alert('메세지를 입력해주세요.');
if (!trim($recv_number))
win_close_alert('문자 메세지를 받을 휴대폰번호를 입력해주세요.');
$wr_total = "1";
$wr_by = $_POST["wr_by"]; // 예약전송 - 년
$wr_bm = $_POST["wr_bm"]; // 예약전송 - 월
$wr_bd = $_POST["wr_bd"]; // 예약전송 - 일
$wr_bh = $_POST["wr_bh"]; // 예약전송 - 시
$wr_bi = $_POST["wr_bi"]; // 예약전송 - 분
// 예약전송
if ($wr_by && $wr_bm && $wr_bd && $wr_bh && $wr_bi) {
$wr_booking = "$wr_by-$wr_bm-$wr_bd $wr_bh:$wr_bi"; // DB저장
$booking = $wr_by.$wr_bm.$wr_bd.$wr_bh.$wr_bi; // icode 전송
} else {
$wr_booking = '';
$booking = '';
}
if ($config['cf_sms_use'] != 'icode') {
alert('기본환경설정에서 icode sms 사용이 비활성화 되어 있습니다.');
}
//include_once "sms_function.php";
$dest = str_replace('-', '', trim($recv_number)); // icode 전송
$callBack = str_replace('-', '', trim($wr_reply)); // icode 전송
$wr_message = conv_unescape_nl($wr_message);
$SMS = new SMS; // SMS 연결
$SMS->SMS_con($config['cf_icode_server_ip'], $config['cf_icode_id'], $config['cf_icode_pw'], $config['cf_icode_server_port']);
$SMS->Add($dest, $callBack, $config['cf_icode_id'], iconv("utf-8", "euc-kr", stripslashes($wr_message)), "");
$SMS->Send();
$SMS = new SMS5;
$SMS->SMS_con($config['cf_icode_server_ip'], $config['cf_icode_id'], $config['cf_icode_pw'], $config['cf_icode_server_port']);
$result = $SMS->Add($dest, $callBack, $Caller, $wr_message, $booking, $wr_total);
include G5_PLUGIN_PATH."/sms5/sms5.lib.php";
if ( ! function_exists('get_hp')) {
function get_hp($hp, $hyphen=1)
{
global $g5;
if (!is_hp($hp)) return '';
if ($hyphen) $preg = "$1-$2-$3"; else $preg = "$1$2$3";
$hp = str_replace('-', '', trim($hp));
$hp = preg_replace("/^(01[016789])([0-9]{3,4})([0-9]{4})$/", $preg, $hp);
if ($g5['sms5_demo'])
$hp = '0100000000';
return $hp;
}
}
if ($result)
{
$result = $SMS->Send();
if ($result) //SMS 서버에 접속했습니다.
{
$row = sql_fetch("select max(wr_no) as wr_no from ".$g5['sms5_write_table']."");
if ($row)
$wr_no = $row['wr_no'] + 1;
else
$wr_no = 1;
sql_query("insert into ".$g5['sms5_write_table']." set wr_no='".$wr_no."', wr_renum=0, wr_reply='".$wr_reply."', wr_message='".$wr_message."', wr_booking='".$wr_booking."', wr_total='".$wr_total."', wr_datetime='".G5_TIME_YMDHIS."'");
$wr_success = 0;
$wr_failure = 0;
$count = 0;
$result = $SMS->Result;
list($phone, $code) = explode(":", $result);
if (substr($code,0,5) == "Error") {
$hs_code = substr($code,6,2);
switch ($hs_code) {
case '02': // "02:형식오류"
$hs_memo = "형식이 잘못되어 전송이 실패하였습니다.";
break;
case '23': // "23:인증실패,데이터오류,전송날짜오류"
$hs_memo = "데이터를 다시 확인해 주시기바랍니다.";
break;
case '97': // "97:잔여코인부족"
$hs_memo = "잔여코인이 부족합니다.";
break;
case '98': // "98:사용기간만료"
$hs_memo = "사용기간이 만료되었습니다.";
break;
case '99': // "99:인증실패"
$hs_memo = "인증 받지 못하였습니다. 계정을 다시 확인해 주세요.";
break;
default: // "미 확인 오류"
$hs_memo = "알 수 없는 오류로 전송이 실패하었습니다.";
break;
}
$wr_failure++;
$hs_flag = 0;
} else {
$hs_code = $code;
$hs_memo = get_hp($recv_number, 1)."로 전송했습니다.";
$wr_success++;
$hs_flag = 1;
}
$row = array_shift($list);
$row['bk_hp'] = get_hp($row['bk_hp'], 1);
$log = array_shift($SMS->Log);
sql_query("insert into ".$g5['sms5_history_table']." set wr_no='".$wr_no."', wr_renum=0, bg_no='1', mb_id='".$row['mb_id']."', bk_no='1', hs_name='".addslashes($row['bk_name'])."', hs_hp='".$wr_reply."', hs_datetime='".G5_TIME_YMDHIS."', hs_flag='".$hs_flag."', hs_code='".$hs_code."', hs_memo='".addslashes($hs_memo)."', hs_log='".addslashes($log)."'");
$SMS->Init(); // 보관하고 있던 결과값을 지웁니다.
sql_query("update ".$g5['sms5_write_table']." set wr_success='".$wr_success."', wr_failure='".$wr_failure."', wr_memo='".$str_serialize."' where wr_no='".$wr_no."' and wr_renum=0");
}
else win_close_alert("에러: SMS 서버와 통신이 불안정합니다.");
}
else win_close_alert("에러: SMS 데이터 입력도중 에러가 발생하였습니다.");
function win_close_alert($msg) {
$html = "<script>
act = window.open('".G5_ADMIN_URL."/sms_admin/sms_ing.php', 'act', 'width=300, height=200');
act.close();
alert('$msg');
history.back();</script>";
echo $html;
exit;
}
}
if ($bo_table && $tel && $wr_content) {
alert("신청되었습니다.",$sms_url);
} elseif ($bo_table) {
alert("등록되었습니다.",$sms_url);
} else {
alert("Thanks",G5_URL);
}
?>
참고자료
http://sir.co.kr/qa/?wr_id=14933
https://sir.kr/qa/282849
댓글목록
등록된 댓글이 없습니다.