Compare commits

..
4 Commits
Author SHA1 Message Date
chicpro 1fe4684537 MySQLi 지원 추가 및 SMS5 수정 2015-10-16 10:12:06 +09:00
chicpro 0803de998b 반응형 대비 캡챠 코드 수정 2015-10-06 09:49:15 +09:00
chicpro 273983c87c 따옴표 관련 오류 수정 2015-10-02 17:57:46 +09:00
chicpro 94cc7639a9 XSS 취약점 수정 및 LMS 모듈 추가 2015-10-01 13:46:46 +09:00
107 changed files with 1509 additions and 1894 deletions
-1
View File
@@ -6,7 +6,6 @@ $menu["menu900"] = array (
array('900300', '문자 보내기', ''.G5_SMS5_ADMIN_URL.'/sms_write.php', 'sms_write'),
array('900400', '전송내역-건별', ''.G5_SMS5_ADMIN_URL.'/history_list.php', 'sms_history' , 1),
array('900410', '전송내역-번호별', ''.G5_SMS5_ADMIN_URL.'/history_num.php', 'sms_history_num' , 1),
array('900450', '전송내역-회원', ''.G5_SMS5_ADMIN_URL.'/history_member.php', 'sms_history_mb' , 1),
array('900500', '이모티콘 그룹', ''.G5_SMS5_ADMIN_URL.'/form_group.php' , 'emoticon_group'),
array('900600', '이모티콘 관리', ''.G5_SMS5_ADMIN_URL.'/form_list.php', 'emoticon_list'),
array('900700', '휴대폰번호 그룹', ''.G5_SMS5_ADMIN_URL.'/num_group.php' , 'hp_group', 1),
+9
View File
@@ -12,16 +12,25 @@ if (!$bo_table) { alert('게시판 TABLE명은 반드시 입력하세요.'); }
if (!preg_match("/^([A-Za-z0-9_]{1,20})$/", $bo_table)) { alert('게시판 TABLE명은 공백없이 영문자, 숫자, _ 만 사용 가능합니다. (20자 이내)'); }
if (!$_POST['bo_subject']) { alert('게시판 제목을 입력하세요.'); }
$_POST['bo_include_head'] = preg_replace("#[\\\]+$#", "", substr($_POST['bo_include_head'], 0, 255));
$_POST['bo_include_tail'] = preg_replace("#[\\\]+$#", "", substr($_POST['bo_include_tail'], 0, 255));
if ($file = $_POST['bo_include_head']) {
$purl = parse_url($file);
$file = $purl['path'];
if (!preg_match("/\.(php|htm['l']?)$/i", $file)) {
alert('상단 파일 경로가 php, html 파일이 아닙니다.');
}
$_POST['bo_include_head'] = $file;
}
if ($file = $_POST['bo_include_tail']) {
$purl = parse_url($file);
$file = $purl['path'];
if (!preg_match("/\.(php|htm['l']?)$/i", $file)) {
alert('하단 파일 경로가 php, html 파일이 아닙니다.');
}
$_POST['bo_include_tail'] = $file;
}
$board_path = G5_DATA_PATH.'/file/'.$bo_table;
+16 -7
View File
@@ -180,6 +180,12 @@ if(!isset($config['cf_kakao_js_apikey'])) {
ADD `cf_kakao_js_apikey` varchar(255) NOT NULL DEFAULT '' AFTER `cf_googl_shorturl_apikey` ", true);
}
// SMS 전송유형 필드 추가
if(!isset($config['cf_sms_type'])) {
sql_query(" ALTER TABLE `{$g5['config_table']}`
ADD `cf_sms_type` varchar(10) NOT NULL DEFAULT '' AFTER `cf_sms_use` ", true);
}
if(!$config['cf_faq_skin']) $config['cf_faq_skin'] = "basic";
if(!$config['cf_mobile_faq_skin']) $config['cf_mobile_faq_skin'] = "basic";
@@ -1034,6 +1040,16 @@ if ($config['cf_sms_use'] && $config['cf_icode_id'] && $config['cf_icode_pw']) {
</select>
</td>
</tr>
<tr>
<th scope="row"><label for="cf_sms_type">SMS 전송유형</label></th>
<td>
<?php echo help("전송유형을 SMS로 선택하시면 최대 80바이트까지 전송하실 수 있으며<br>LMS로 선택하시면 90바이트 이하는 SMS로, 그 이상은 1500바이트까지 LMS로 전송됩니다.<br>요금은 건당 SMS는 16원, LMS는 48원입니다."); ?>
<select id="cf_sms_type" name="cf_sms_type">
<option value="" <?php echo get_selected($config['cf_sms_type'], ''); ?>>SMS</option>
<option value="LMS" <?php echo get_selected($config['cf_sms_type'], 'LMS'); ?>>LMS</option>
</select>
</td>
</tr>
<tr>
<th scope="row"><label for="cf_icode_id">아이코드 회원아이디</label></th>
<td>
@@ -1069,7 +1085,6 @@ if ($config['cf_sms_use'] && $config['cf_icode_id'] && $config['cf_icode_pw']) {
<tr>
<th scope="row">아이코드 SMS 신청<br>회원가입</th>
<td>
<?php echo help("아래 링크에서 회원가입 하시면 문자 건당 16원에 제공 받을 수 있습니다."); ?>
<a href="http://icodekorea.com/res/join_company_fix_a.php?sellid=sir2" target="_blank" class="btn_frmline">아이코드 회원가입</a>
</td>
</tr>
@@ -1081,12 +1096,6 @@ if ($config['cf_sms_use'] && $config['cf_icode_id'] && $config['cf_icode_pw']) {
<a href="http://www.icodekorea.com/smsbiz/credit_card_amt.php?icode_id=<?php echo $config['cf_icode_id']; ?>&amp;icode_passwd=<?php echo $config['cf_icode_pw']; ?>" target="_blank" class="btn_frmline" onclick="window.open(this.href,'icode_payment', 'scrollbars=1,resizable=1'); return false;">충전하기</a>
</td>
</tr>
<tr>
<th scope="row">건수별 금액</th>
<td colspan="3">
<?php echo number_format($userinfo['gpay']); ?> 원.
</td>
</tr>
<?php } ?>
</tbody>
</table>
+1
View File
@@ -124,6 +124,7 @@ $sql = " update {$g5['config_table']}
cf_cert_limit = '{$_POST['cf_cert_limit']}',
cf_cert_req = '{$_POST['cf_cert_req']}',
cf_sms_use = '{$_POST['cf_sms_use']}',
cf_sms_type = '{$_POST['cf_sms_type']}',
cf_icode_id = '{$_POST['cf_icode_id']}',
cf_icode_pw = '{$_POST['cf_icode_pw']}',
cf_icode_server_ip = '{$_POST['cf_icode_server_ip']}',
+1 -1
View File
@@ -69,7 +69,7 @@ $result = sql_query($sql);
</tr>
</thead>
<tbody>
<?php for ($i=0; $row=mysql_fetch_array($result); $i++) {
<?php for ($i=0; $row=sql_fetch_array($result); $i++) {
$bg = 'bg'.($i%2);
?>
<tr class="<?php echo $bg; ?>">
+6 -1
View File
@@ -758,4 +758,9 @@ strong.sodr_nonpay {display:block;padding:5px 0;text-align:right}
#grp_color li span{width:10px;height:10px; display:inline-block;background:rgb(75, 178, 197);margin-right:5px;}
#grp_color li.color2 span{background:rgb(234, 162, 40);}
#chart_wr h5{text-align:center;border:1px solid #eee;padding:30px 0}
#chart_wr{margin:20px }
#chart_wr{margin:20px }
/*전송실패 문자 재전송 내역*/
.sms_table{padding:0 20px 40px;}
.sms_table table th{border:1px solid #ddd;padding:9px 0}
.sms_table table td{border:1px solid #ddd;text-align:center;width:16%;padding:9px 0}
+1 -1
View File
@@ -21,7 +21,7 @@ if ($w == "")
$sql_common ";
sql_query($sql);
$fa_id = mysql_insert_id();
$fa_id = sql_insert_id();
}
else if ($w == "u")
{
+1 -1
View File
@@ -31,7 +31,7 @@ if ($w == "")
$sql = " insert {$g5['faq_master_table']} $sql_common ";
sql_query($sql);
$fm_id = mysql_insert_id();
$fm_id = sql_insert_id();
}
else if ($w == "u")
{
+1 -1
View File
@@ -93,7 +93,7 @@ $result = sql_query($sql);
</tr>
</thead>
<tbody>
<?php for ($i=0; $row=mysql_fetch_array($result); $i++) {
<?php for ($i=0; $row=sql_fetch_array($result); $i++) {
$sql1 = " select COUNT(*) as cnt from {$g5['faq_table']} where fm_id = '{$row['fm_id']}' ";
$row1 = sql_fetch($sql1);
$cnt = $row1['cnt'];
+1 -1
View File
@@ -91,7 +91,7 @@ $colspan = 12;
$leave_date = $row['mb_leave_date'] ? $row['mb_leave_date'] : date("Ymd", G5_SERVER_TIME);
$intercept_date = $row['mb_intercept_date'] ? $row['mb_intercept_date'] : date("Ymd", G5_SERVER_TIME);
$mb_nick = get_sideview($row['mb_id'], $row['mb_nick'], $row['mb_email'], $row['mb_homepage']);
$mb_nick = get_sideview($row['mb_id'], get_text($row['mb_nick']), $row['mb_email'], $row['mb_homepage']);
$mb_id = $row['mb_id'];
if ($row['mb_leave_date'])
+1 -1
View File
@@ -51,7 +51,7 @@ $colspan = 7;
</thead>
<tbody>
<?php
for ($i=0; $row=mysql_fetch_array($result); $i++) {
for ($i=0; $row=sql_fetch_array($result); $i++) {
$s_vie = '<a href="./mail_preview.php?ma_id='.$row['ma_id'].'" target="_blank">미리보기</a>';
$num = number_format($total_count - ($page - 1) * $config['cf_page_rows'] - $i);
+3
View File
@@ -31,6 +31,8 @@ else if ($w == 'u')
$required_mb_password = '';
$html_title = '수정';
$mb['mb_name'] = get_text($mb['mb_name']);
$mb['mb_nick'] = get_text($mb['mb_nick']);
$mb['mb_email'] = get_text($mb['mb_email']);
$mb['mb_homepage'] = get_text($mb['mb_homepage']);
$mb['mb_birth'] = get_text($mb['mb_birth']);
@@ -38,6 +40,7 @@ else if ($w == 'u')
$mb['mb_hp'] = get_text($mb['mb_hp']);
$mb['mb_addr1'] = get_text($mb['mb_addr1']);
$mb['mb_addr2'] = get_text($mb['mb_addr2']);
$mb['mb_addr3'] = get_text($mb['mb_addr3']);
$mb['mb_signature'] = get_text($mb['mb_signature']);
$mb['mb_recommend'] = get_text($mb['mb_recommend']);
$mb['mb_profile'] = get_text($mb['mb_profile']);
+2 -2
View File
@@ -166,7 +166,7 @@ $colspan = 16;
$leave_date = $row['mb_leave_date'] ? $row['mb_leave_date'] : date('Ymd', G5_SERVER_TIME);
$intercept_date = $row['mb_intercept_date'] ? $row['mb_intercept_date'] : date('Ymd', G5_SERVER_TIME);
$mb_nick = get_sideview($row['mb_id'], $row['mb_nick'], $row['mb_email'], $row['mb_homepage']);
$mb_nick = get_sideview($row['mb_id'], get_text($row['mb_nick']), $row['mb_email'], $row['mb_homepage']);
$mb_id = $row['mb_id'];
$leave_msg = '';
@@ -211,7 +211,7 @@ $colspan = 16;
<tr class="<?php echo $bg; ?>">
<td headers="mb_list_chk" class="td_chk" rowspan="2">
<input type="hidden" name="mb_id[<?php echo $i ?>]" value="<?php echo $row['mb_id'] ?>" id="mb_id_<?php echo $i ?>">
<label for="chk_<?php echo $i; ?>" class="sound_only"><?php echo get_text($row['mb_name']); ?> <?php echo $row['mb_nick']; ?>님</label>
<label for="chk_<?php echo $i; ?>" class="sound_only"><?php echo get_text($row['mb_name']); ?> <?php echo get_text($row['mb_nick']); ?>님</label>
<input type="checkbox" name="chk[]" value="<?php echo $i ?>" id="chk_<?php echo $i ?>">
</td>
<td headers="mb_list_id" rowspan="2" class="td_name sv_use"><?php echo $mb_id ?></td>
+1 -1
View File
@@ -73,7 +73,7 @@ $colspan = 7;
}
$search = array('"', "'");
$replace = array('&#34;', '&#39;');
$replace = array('&#034;', '&#039;');
$me_name = str_replace($search, $replace, $row['me_name']);
?>
<tr class="<?php echo $bg; ?> menu_list menu_group_<?php echo substr($row['me_code'], 0, 2); ?>">
+1 -1
View File
@@ -27,7 +27,7 @@ if($w == "")
$sql = " insert {$g5['new_win_table']} set $sql_common ";
sql_query($sql);
$nw_id = mysql_insert_id();
$nw_id = sql_insert_id();
}
else if ($w == "u")
{
+1 -1
View File
@@ -70,7 +70,7 @@ $result = sql_query($sql);
</thead>
<tbody>
<?php
for ($i=0; $row=mysql_fetch_array($result); $i++) {
for ($i=0; $row=sql_fetch_array($result); $i++) {
$bg = 'bg'.($i%2);
switch($row['nw_device']) {
+1 -1
View File
@@ -17,7 +17,7 @@ if ($w == '')
values ( '{$_POST['po_subject']}', '{$_POST['po_poll1']}', '{$_POST['po_poll2']}', '{$_POST['po_poll3']}', '{$_POST['po_poll4']}', '{$_POST['po_poll5']}', '{$_POST['po_poll6']}', '{$_POST['po_poll7']}', '{$_POST['po_poll8']}', '{$_POST['po_poll9']}', '{$_POST['po_cnt1']}', '{$_POST['po_cnt2']}', '{$_POST['po_cnt3']}', '{$_POST['po_cnt4']}', '{$_POST['po_cnt5']}', '{$_POST['po_cnt6']}', '{$_POST['po_cnt7']}', '{$_POST['po_cnt8']}', '{$_POST['po_cnt9']}', '{$_POST['po_etc']}', '{$_POST['po_level']}', '{$_POST['po_point']}', '".G5_TIME_YMD."' ) ";
sql_query($sql);
$po_id = mysql_insert_id();
$po_id = sql_insert_id();
}
else if ($w == 'u')
{
+1 -1
View File
@@ -16,7 +16,7 @@ $sql_order = " order by cnt desc ";
$sql = " select pp_word {$sql_common} {$sql_search} {$sql_group} ";
$result = sql_query($sql);
$total_count = mysql_num_rows($result);
$total_count = sql_num_rows($result);
$rows = $config['cf_page_rows'];
$total_page = ceil($total_count / $rows); // 전체 페이지 계산
+2 -1
View File
@@ -2,9 +2,10 @@
define('G5_IS_ADMIN', true);
include_once ('../../common.php');
include_once(G5_ADMIN_PATH.'/admin.lib.php');
include_once(G5_SMS5_PATH.'/sms5.lib.php');
if (!strstr($_SERVER['SCRIPT_NAME'], 'install.php')) {
if(!mysql_num_rows(mysql_query(" show tables like '{$g5['sms5_config_table']}' ")))
if(!sql_num_rows(sql_query(" show tables like '{$g5['sms5_config_table']}' ")))
goto_url('install.php');
// SMS 설정값 배열변수
+1 -44
View File
@@ -86,57 +86,14 @@ if ($config['cf_sms_use'] == 'icode') { // 아이코드 사용
<input type="button" value="충전하기" class="btn_frmline" onclick="window.open('http://icodekorea.com/company/credit_card_input.php?icode_id=<?php echo $config['cf_icode_id']?>&icode_passwd=<?php echo $config['cf_icode_pw']?>','icode_payment','width=650,height=500')">
</td>
</tr>
<tr>
<th scope="row">건별 금액</th>
<td><?php echo number_format($userinfo['gpay'])?> 원</td>
</tr>
<?php } ?>
<tr>
<th scope="row"><label for="cf_phone">회신번호<strong class="sound_only"> 필수</strong></label></th>
<td>
<?php echo help("회신받을 휴대폰 번호를 입력하세요. '-' 를 꼭 입력하세요.<br>예) 010-123-4567"); ?>
<?php echo help("회신받을 휴대폰 번호를 입력하세요. 회신번호는 발신번호로 사전등록된 번호와 동일해야 합니다.<br>예) 010-123-4567"); ?>
<input type="text" name="cf_phone" value="<?php echo $sms5['cf_phone']; ?>" id="cf_phone" required class="frm_input required" size="12">
</td>
</tr>
<tr>
<th scope="row"><label for="cf_member">회원간 문자전송</label></th>
<td>
<?php echo help("허용에 체크하면 회원끼리 문자전송이 가능합니다.");?>
<input type="checkbox" name="cf_member" value="1" id="cf_member" <?php echo get_checked(1, $sms5['cf_member']); ?>> <label for="cf_member">허용</label>
</td>
</tr>
<tr>
<th scope="row"><label for="cf_level">문자전송가능 레벨</label></th>
<td>
<?php echo help("문자전송을 허용할 회원레벨을 선택해주세요.");?>
<select name="cf_level" id="cf_level">
<?php for ($i=1; $i<=10; $i++) { ?>
<option value="<?php echo $i?>"<?php echo get_selected($i, $sms5['cf_level']);?>> <?php echo $i?> </option>
<?php } ?>
</select>
레벨 이상
</td>
</tr>
<tr>
<th scope="row"><label for="cf_point">문자전송 차감 포인트<strong class="sound_only"> 필수</strong></label></th>
<td>
<?php echo help("회원이 문자를 전송할시에 차감할 포인트를 입력해주세요. 0이면 포인트를 차감하지 않습니다.");?>
<input type="text" name="cf_point" value="<?php echo $sms5['cf_point']; ?>" id="cf_point" required class="frm_input required" size="5">
</td>
</tr>
<tr>
<th scope="row"><label for="cf_day_count">문자전송 하루제한 갯수<strong class="sound_only"> 필수</strong></label></th>
<td>
<?php echo help("회원이 하루에 보낼수 있는 문자 갯수를 입력해주세요. 0이면 제한하지 않습니다.");?>
<input type="text" name="cf_day_count" value="<?php echo $sms5['cf_day_count']; ?>" id="cf_day_count" required class="frm_input required" size="5">
</td>
</tr>
<tr>
<th scope="row"><label for="cf_skin">스킨 디렉토리<strong class="sound_only">필수</strong></label></th>
<td>
<?php echo get_sms5_skin_select('skin', 'cf_skin', 'cf_skin', $sms5['cf_skin'], 'required'); ?>
</td>
</tr>
</tbody>
</table>
</div>
+5 -6
View File
@@ -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)
@@ -25,7 +24,7 @@ if (!$res)
else
$sql = "update ";
$sql .= $g5['sms5_config_table']." set cf_phone='$cf_phone', cf_member='$cf_member', cf_level='$cf_level', cf_point='$cf_point', cf_day_count='$cf_day_count', cf_skin = '$cf_skin' ";
$sql .= $g5['sms5_config_table']." set cf_phone='$cf_phone' ";
sql_query($sql);
-90
View File
@@ -1,90 +0,0 @@
<?php
$sub_menu = "900410";
include_once("./_common.php");
$page_size = 20;
$colspan = 7;
auth_check($auth[$sub_menu], "r");
$g5['title'] = "문자전송 내역 (회원)";
if ($page < 1) $page = 1;
if ($st && trim($sv))
$sql_search = " and $st like '%$sv%' ";
else
$sql_search = "";
$total_res = sql_fetch("select count(*) as cnt from {$g5['sms5_member_history_table']} where 1 $sql_search");
$total_count = $total_res['cnt'];
$total_page = (int)($total_count/$page_size) + ($total_count%$page_size==0 ? 0 : 1);
$page_start = $page_size * ( $page - 1 );
$vnum = $total_count - (($page-1) * $page_size);
include_once(G5_ADMIN_PATH.'/admin.head.php');
?>
<form name="search_form" method="get" action="<?php echo $_SEVER['SCRIPT_NAME']?>" class="local_sch01 local_sch">
<label for="st" class="sound_only">검색대상</label>
<select name="st" id="st">
<option value="mb_id"<?php echo get_selected('mh_name', $st); ?>>아이디</option>
<option value="mh_hp"<?php echo get_selected('mh_hp', $st); ?>>받는번호</option>
<option value="mh_reply"<?php echo get_selected('mh_reply', $st); ?>>보내는번호</option>
</select>
<label for="sv" class="sound_only">검색어<strong class="sound_only"> 필수</strong></label>
<input type="text" name="sv" value="<?php echo $sv ?>" id="sv" required class="required frm_input">
<input type="submit" value="검색" class="btn_submit">
</form>
<div class="tbl_head01 tbl_wrap">
<table>
<caption><?php echo $g5['title']; ?> 목록</caption>
<thead>
<tr>
<th scope="col">번호</th>
<th scope="col">회원</th>
<th scope="col">보내는번호</th>
<th scope="col">받는번호</th>
<th scope="col">전송일시</th>
<th scope="col">예약</th>
<th scope="col">Log</th>
</tr>
</thead>
<tbody>
<?php if (!$total_count) { ?>
<tr>
<td colspan="<?php echo $colspan?>" class="empty_table" >
데이터가 없습니다.
</td>
</tr>
<?php
}
$qry = sql_query("select * from {$g5['sms5_member_history_table']} where 1 $sql_search order by mh_no desc limit $page_start, $page_size");
while($row = sql_fetch_array($qry)) {
$bg = 'bg'.($line++%2);
$mb = get_member($row['mb_id']);
$mb_id = get_sideview($row['mb_id'], $mb['mb_nick']);
?>
<tr class="<?php echo $bg; ?>">
<td class="td_num"><?php echo $vnum--?></td>
<td class="td_mbid"><?php echo $mb_id?></td>
<td class="td_numbig"><?php echo $row['mh_reply']?></td>
<td class="td_numbig"><?php echo $row['mh_hp']?></td>
<td class="td_datetime"><?php echo $row['mh_datetime']?></td>
<td class="td_boolean"><?php echo $row['mh_booking']!='0000-00-00 00:00:00'?"<span title='{$row['mh_booking']}'>예약</span>":'';?></td>
<td><?php echo $row['mh_log']?></td>
</tr>
<?php } ?>
</tbody>
</table>
</div>
<?php echo get_paging(G5_IS_MOBILE ? $config['cf_mobile_pages'] : $config['cf_write_pages'], $page, $total_page, $_SERVER['SCRIPT_NAME']."?st=$st&amp;sv=$sv&amp;page="); ?>
<?php
include_once(G5_ADMIN_PATH.'/admin.tail.php');
?>
+151 -58
View File
@@ -39,7 +39,8 @@ if (!$res['cnt']) {
$sql = sql_query("select * from {$g5['sms5_history_table']} where wr_no='$wr_no' $sql_renum $sql_flag");
while ($res = sql_fetch_array($sql))
{
$res['bk_hp'] = get_hp($res['bk_hp'], 0);
$res['bk_hp'] = get_hp($res['hs_hp'], 0);
$res['bk_name'] = $res['hs_name'];
if ($g5['sms5_demo'])
$res['bk_hp'] = '0100000000';
@@ -48,6 +49,7 @@ while ($res = sql_fetch_array($sql))
}
$wr_total = count($list);
$reply = str_replace('-', '', trim($write['wr_reply']));
if ($config['cf_sms_use'] != 'icode') {
alert('기본환경설정에서 icode sms 사용이 비활성화 되어 있습니다.');
@@ -55,79 +57,170 @@ if ($config['cf_sms_use'] != 'icode') {
include_once(G5_ADMIN_PATH.'/admin.head.php');
$SMS = new SMS5;
$SMS->SMS_con($config['cf_icode_server_ip'], $config['cf_icode_id'], $config['cf_icode_pw'], $config['cf_icode_server_port']);
$reply = str_replace('-', '', trim($write['wr_reply']));
if($config['cf_sms_type'] == 'LMS') {
$port_setting = get_icode_port_type($config['cf_icode_id'], $config['cf_icode_pw']);
$result = $SMS->Add($list, $reply, '', '', $write['wr_message'], '', $wr_total);
if ($result)
{
$result = $SMS->Send();
if ($result) //SMS 서버에 접속했습니다.
{
sql_query("insert into {$g5['sms5_write_table']} set wr_no='$wr_no', wr_renum='$new_wr_renum', wr_reply='".addslashes($write['wr_reply'])."', wr_message='".addslashes($write['wr_message'])."', wr_total='$wr_total', wr_datetime='".G5_TIME_YMDHIS."'");
if($port_setting !== false) {
$SMS->SMS_con($config['cf_icode_server_ip'], $config['cf_icode_id'], $config['cf_icode_pw'], $port_setting);
$wr_success = 0;
$wr_failure = 0;
$count = 0;
foreach ($SMS->Result as $result)
{
list($phone, $code) = explode(":", $result);
for($i=0; $i<$wr_total; $i++) {
$strDest = array();
$strDest[] = $list[$i]['bk_hp'];
$strCallBack = $reply;
$strCaller = $config['cf_title'];
$strSubject = '';
$strURL = '';
$strData = $write['wr_message'];
if( !empty($list[$i]['bk_name']) ){
$strData = str_replace("{이름}", $list[$i]['bk_name'], $strData);
}
$strDate = $booking;
$nCount = 1;
if (substr($code,0,5) == "Error")
{
$hs_code = substr($code,6,2);
$result = $SMS->Add($strDest, $strCallBack, $strCaller, $strSubject, $strURL, $strData, $strDate, $nCount);
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;
if($result) {
$result = $SMS->Send();
if ($result) //SMS 서버에 접속했습니다.
{
foreach ($SMS->Result as $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($phone, 1)."로 전송했습니다.";
$wr_success++;
$hs_flag = 1;
}
$row = $list[$i];
$row['bk_hp'] = get_hp($row['bk_hp'], 1);
$log = array_shift($SMS->Log);
$log = @iconv('euc-kr', 'utf-8', $log);
sql_query("insert into {$g5['sms5_history_table']} set wr_no='$wr_no', wr_renum='$new_wr_renum', bg_no='{$row['bg_no']}', mb_id='{$row['mb_id']}', bk_no='{$row['bk_no']}', hs_name='".addslashes($row['bk_name'])."', hs_hp='{$row['bk_hp']}', hs_datetime='".G5_TIME_YMDHIS."', hs_flag='$hs_flag', hs_code='$hs_code', hs_memo='".addslashes($hs_memo)."', hs_log='".addslashes($log)."'", false);
}
$SMS->Init(); // 보관하고 있던 결과값을 지웁니다.
}
$wr_failure++;
$hs_flag = 0;
}
else
{
$hs_code = $code;
$hs_memo = get_hp($phone, 1)."로 전송했습니다.";
$wr_success++;
$hs_flag = 1;
}
$row = array_shift($list);
$row['bk_hp'] = get_hp($row['bk_hp'], 1);
$log = array_shift($SMS->Log);
$log = @iconv('euc-kr', 'utf-8', $log);
sql_query("insert into {$g5['sms5_history_table']} set wr_no='$wr_no', wr_renum='$new_wr_renum', bg_no='{$row['bg_no']}', mb_id='{$row['mb_id']}', bk_no='{$row['bk_no']}', hs_name='{$row['hs_name']}', hs_hp='{$row['hs_hp']}', hs_datetime='".G5_TIME_YMDHIS."', hs_flag='$hs_flag', hs_code='$hs_code', hs_memo='".addslashes($hs_memo)."', hs_log='".addslashes($log)."'", false);
}
$SMS->Init(); // 보관하고 있던 결과값을 지웁니다.
sql_query("update {$g5['sms5_write_table']} set wr_success='$wr_success', wr_failure='$wr_failure' where wr_no='$wr_no' and wr_renum='$new_wr_renum'");
sql_query("insert into {$g5['sms5_write_table']} set wr_no='$wr_no', wr_renum='$new_wr_renum', wr_reply='".addslashes($write['wr_reply'])."', wr_message='".addslashes($write['wr_message'])."', wr_success='$wr_success', wr_failure='$wr_failure', wr_total='$wr_total', wr_datetime='".G5_TIME_YMDHIS."'");
sql_query("update {$g5['sms5_write_table']} set wr_re_total=wr_re_total+1 where wr_no='$wr_no' and wr_renum=0");
}
else alert("에러: SMS 서버와 통신이 불안정합니다.");
} else {
$SMS->SMS_con($config['cf_icode_server_ip'], $config['cf_icode_id'], $config['cf_icode_pw'], $config['cf_icode_server_port']);
$reply = str_replace('-', '', trim($write['wr_reply']));
$result = $SMS->Add($list, $reply, '', '', $write['wr_message'], '', $wr_total);
if ($result)
{
$result = $SMS->Send();
if ($result) //SMS 서버에 접속했습니다.
{
sql_query("insert into {$g5['sms5_write_table']} set wr_no='$wr_no', wr_renum='$new_wr_renum', wr_reply='".addslashes($write['wr_reply'])."', wr_message='".addslashes($write['wr_message'])."', wr_total='$wr_total', wr_datetime='".G5_TIME_YMDHIS."'");
$wr_success = 0;
$wr_failure = 0;
$count = 0;
foreach ($SMS->Result as $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($phone, 1)."로 전송했습니다.";
$wr_success++;
$hs_flag = 1;
}
$row = array_shift($list);
$row['bk_hp'] = get_hp($row['bk_hp'], 1);
$log = array_shift($SMS->Log);
$log = @iconv('euc-kr', 'utf-8', $log);
sql_query("insert into {$g5['sms5_history_table']} set wr_no='$wr_no', wr_renum='$new_wr_renum', bg_no='{$row['bg_no']}', mb_id='{$row['mb_id']}', bk_no='{$row['bk_no']}', hs_name='{$row['hs_name']}', hs_hp='{$row['hs_hp']}', hs_datetime='".G5_TIME_YMDHIS."', hs_flag='$hs_flag', hs_code='$hs_code', hs_memo='".addslashes($hs_memo)."', hs_log='".addslashes($log)."'", false);
}
$SMS->Init(); // 보관하고 있던 결과값을 지웁니다.
sql_query("update {$g5['sms5_write_table']} set wr_success='$wr_success', wr_failure='$wr_failure' where wr_no='$wr_no' and wr_renum='$new_wr_renum'");
sql_query("update {$g5['sms5_write_table']} set wr_re_total=wr_re_total+1 where wr_no='$wr_no' and wr_renum=0");
}
else alert("에러: SMS 서버와 통신이 불안정합니다.");
}
else alert("에러: SMS 데이터 입력도중 에러가 발생하였습니다.");
}
else alert("에러: SMS 데이터 입력도중 에러가 발생하였습니다.");
?>
<script>
+2
View File
@@ -98,6 +98,7 @@ function all_send()
<?php if ($write['wr_re_total'] && !$wr_renum) { ?>
<h2>전송실패 문자 재전송 내역</h2>
<div class="sms_table">
<table>
<thead>
<tr>
@@ -138,6 +139,7 @@ function all_send()
</tbody>
</table>
<?php } ?>
</div>
<?php
if( $write['wr_memo'] ){
+2 -2
View File
@@ -53,7 +53,7 @@ eval("\$file = \"$file\";");
$f = explode(";", $file);
for ($i=0; $i<count($f); $i++) {
if (trim($f[$i]) == "") continue;
mysql_query($f[$i]) or die(mysql_error());
sql_query($f[$i]) or die(mysqli_error());
}
// 테이블 생성 ------------------------------------
@@ -68,7 +68,7 @@ $download_point = -20;
//-------------------------------------------------------------------------------------------------
// config 테이블 설정
$sql = " insert into {$g5['sms5_book_group_table']} set bg_name='미분류'";
mysql_query($sql) or die(mysql_error() . "<p>" . $sql);
sql_query($sql) or die(mysqli_error() . "<p>" . $sql);
echo "<script>document.getElementById('sms5_job_02').innerHTML='DB설정 완료';</script>";
flush(); usleep(50000);
+1 -28
View File
@@ -65,12 +65,7 @@ DROP TABLE IF EXISTS `{$g5['sms5_config_table']}`;
CREATE TABLE `{$g5['sms5_config_table']}` (
`cf_phone` varchar(255) NOT NULL default '',
`cf_datetime` datetime NOT NULL default '0000-00-00 00:00:00',
`cf_member` tinyint(4) NOT NULL default '1',
`cf_level` tinyint(4) NOT NULL default '2',
`cf_point` int(11) NOT NULL default '0',
`cf_day_count` int(11) NOT NULL default '0',
`cf_skin` varchar(100) NOT NULL DEFAULT ''
`cf_datetime` datetime NOT NULL default '0000-00-00 00:00:00'
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
@@ -164,25 +159,3 @@ CREATE TABLE `{$g5['sms5_write_table']}` (
`wr_memo` text NOT NULL,
KEY `wr_no` (`wr_no`,`wr_renum`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
##
## Table structure for table `{$g5['sms5_member_history_table']}`
##
DROP TABLE IF EXISTS `{$g5['sms5_member_history_table']}`;
CREATE TABLE `{$g5['sms5_member_history_table']}` (
`mh_no` int(11) NOT NULL auto_increment,
`mb_id` varchar(30) NOT NULL,
`mh_reply` varchar(30) NOT NULL,
`mh_hp` varchar(30) NOT NULL,
`mh_datetime` datetime NOT NULL,
`mh_booking` datetime NOT NULL,
`mh_log` varchar(255) NOT NULL,
`mh_ip` varchar(15) NOT NULL,
PRIMARY KEY (`mh_no`),
KEY `mb_id` (`mb_id`,`mh_datetime`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+40 -4
View File
@@ -33,7 +33,7 @@ if ($config['cf_sms_use'] == 'icode') { // 아이코드 사용
<label for="wr_message" id="wr_message_lbl">내용</label>
<textarea name="wr_message" id="wr_message" class="box_txt box_square" onkeyup="byte_check('wr_message', 'sms_bytes');" accesskey="m"></textarea>
<div id="sms_byte"><span id="sms_bytes">0</span> / 80 byte</div>
<div id="sms_byte"><span id="sms_bytes">0</span> / <span id="sms_max_bytes"><?php echo ($config['cf_sms_type'] == 'LMS' ? 90 : 80); ?></span> byte</div>
<button type="button" id="write_sc_btn" class="write_scemo_btn">특수<br>기호</button>
<div id="write_sc" class="write_scemo">
@@ -114,7 +114,7 @@ if ($config['cf_sms_use'] == 'icode') { // 아이코드 사용
<div id="write_reply">
<label for="wr_reply">회신<strong class="sound_only"> 필수</strong></label>
<input type="text" name="wr_reply" value="<?php echo $sms5['cf_phone']?>" id="wr_reply" required class="frm_input required" size="17" maxlength="20">
<input type="text" name="wr_reply" value="<?php echo $sms5['cf_phone']?>" id="wr_reply" required class="frm_input required" size="17" maxlength="20" readonly="readonly">
</div>
<div id="write_recv" class="write_inner">
@@ -406,6 +406,7 @@ function byte_check(wr_message, sms_bytes)
{
var conts = document.getElementById(wr_message);
var bytes = document.getElementById(sms_bytes);
var max_bytes = document.getElementById("sms_max_bytes");
var i = 0;
var cnt = 0;
@@ -424,6 +425,40 @@ function byte_check(wr_message, sms_bytes)
bytes.innerHTML = cnt;
<?php if($config['cf_sms_type'] == 'LMS') { ?>
if(cnt > 90)
max_bytes.innerHTML = 1500;
else
max_bytes.innerHTML = 90;
if (cnt > 1500)
{
exceed = cnt - 1500;
alert('메시지 내용은 1500바이트를 넘을수 없습니다.\n\n작성하신 메세지 내용은 '+ exceed +'byte가 초과되었습니다.\n\n초과된 부분은 자동으로 삭제됩니다.');
var tcnt = 0;
var xcnt = 0;
var tmp = conts.value;
for (i=0; i<tmp.length; i++)
{
ch = tmp.charAt(i);
if (escape(ch).length > 4) {
tcnt += 2;
} else {
tcnt += 1;
}
if (tcnt > 1500) {
tmp = tmp.substring(0,i);
break;
} else {
xcnt = tcnt;
}
}
conts.value = tmp;
bytes.innerHTML = xcnt;
return;
}
<?php } else { ?>
if (cnt > 80)
{
exceed = cnt - 80;
@@ -451,6 +486,7 @@ function byte_check(wr_message, sms_bytes)
bytes.innerHTML = xcnt;
return;
}
<?php } ?>
}
<?php
@@ -496,7 +532,7 @@ if ($wr_no)
// 회원목록
$sql = " select * from {$g5['sms5_history_table']} where wr_no = '$wr_no' and bk_no > 0 ";
$qry = sql_query($sql);
$tot = mysql_num_rows($qry);
$tot = sql_num_rows($qry);
if ($tot > 0) {
@@ -514,7 +550,7 @@ if ($wr_no)
// 비회원 목록
$sql = " select * from {$g5['sms5_history_table']} where wr_no = '$wr_no' and bk_no = 0 ";
$qry = sql_query($sql);
$tot = mysql_num_rows($qry);
$tot = sql_num_rows($qry);
if ($tot > 0)
{
+168 -62
View File
@@ -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'] );
@@ -133,86 +145,180 @@ if ($config['cf_sms_use'] != 'icode') {
include_once(G5_ADMIN_PATH.'/admin.head.php');
$SMS = new SMS5;
$SMS->SMS_con($config['cf_icode_server_ip'], $config['cf_icode_id'], $config['cf_icode_pw'], $config['cf_icode_server_port']);
$reply = str_replace('-', '', trim($wr_reply));
$wr_message = conv_unescape_nl($wr_message);
$result = $SMS->Add($list, $reply, '', '', $wr_message, $booking, $wr_total);
$SMS = new SMS5;
if ($result)
{
$result = $SMS->Send();
if($config['cf_sms_type'] == 'LMS') {
$port_setting = get_icode_port_type($config['cf_icode_id'], $config['cf_icode_pw']);
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."'");
if($port_setting !== false) {
$SMS->SMS_con($config['cf_icode_server_ip'], $config['cf_icode_id'], $config['cf_icode_pw'], $port_setting);
$wr_success = 0;
$wr_failure = 0;
$count = 0;
foreach ($SMS->Result as $result)
{
list($phone, $code) = explode(":", $result);
$row2 = sql_fetch("select max(wr_no) as wr_no from {$g5['sms5_write_table']}");
if ($row2)
$wr_no = $row2['wr_no'] + 1;
else
$wr_no = 1;
if (substr($code,0,5) == "Error")
{
$hs_code = substr($code,6,2);
for($i=0; $i<$wr_total; $i++) {
$strDest = array();
$strDest[] = $list[$i]['bk_hp'];
$strCallBack = $reply;
$strCaller = $config['cf_title'];
$strSubject = '';
$strURL = '';
$strData = $wr_message;
if( !empty($list[$i]['bk_name']) ){
$strData = str_replace("{이름}", $list[$i]['bk_name'], $strData);
}
$strDate = $booking;
$nCount = 1;
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;
$result = $SMS->Add($strDest, $strCallBack, $strCaller, $strSubject, $strURL, $strData, $strDate, $nCount);
if($result) {
$result = $SMS->Send();
if ($result) //SMS 서버에 접속했습니다.
{
foreach ($SMS->Result as $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($phone, 1)."로 전송했습니다.";
$wr_success++;
$hs_flag = 1;
}
$row = $list[$i];
$row['bk_hp'] = get_hp($row['bk_hp'], 1);
$log = array_shift($SMS->Log);
$log = @iconv('euc-kr', 'utf-8', $log);
sql_query("insert into {$g5['sms5_history_table']} set wr_no='$wr_no', wr_renum=0, bg_no='{$row['bg_no']}', mb_id='{$row['mb_id']}', bk_no='{$row['bk_no']}', hs_name='".addslashes($row['bk_name'])."', hs_hp='{$row['bk_hp']}', hs_datetime='".G5_TIME_YMDHIS."', hs_flag='$hs_flag', hs_code='$hs_code', hs_memo='".addslashes($hs_memo)."', hs_log='".addslashes($log)."'", false);
}
$SMS->Init(); // 보관하고 있던 결과값을 지웁니다.
}
$wr_failure++;
$hs_flag = 0;
}
else
{
$hs_code = $code;
$hs_memo = get_hp($phone, 1)."로 전송했습니다.";
$wr_success++;
$hs_flag = 1;
}
$row = array_shift($list);
$row['bk_hp'] = get_hp($row['bk_hp'], 1);
$log = array_shift($SMS->Log);
$log = @iconv('euc-kr', 'utf-8', $log);
sql_query("insert into {$g5['sms5_history_table']} set wr_no='$wr_no', wr_renum=0, bg_no='{$row['bg_no']}', mb_id='{$row['mb_id']}', bk_no='{$row['bk_no']}', hs_name='".addslashes($row['bk_name'])."', hs_hp='{$row['bk_hp']}', hs_datetime='".G5_TIME_YMDHIS."', hs_flag='$hs_flag', hs_code='$hs_code', hs_memo='".addslashes($hs_memo)."', hs_log='".addslashes($log)."'", false);
}
$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");
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_success='$wr_success', wr_failure='$wr_failure', wr_memo='$str_serialize', wr_booking='$wr_booking', wr_total='$wr_total', wr_datetime='".G5_TIME_YMDHIS."'");
}
else win_close_alert("에러: SMS 서버와 통신이 불안정합니다.");
} else {
$SMS->SMS_con($config['cf_icode_server_ip'], $config['cf_icode_id'], $config['cf_icode_pw'], $config['cf_icode_server_port']);
$result = $SMS->Add($list, $reply, '', '', $wr_message, $booking, $wr_total);
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;
foreach ($SMS->Result as $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($phone, 1)."로 전송했습니다.";
$wr_success++;
$hs_flag = 1;
}
$row = array_shift($list);
$row['bk_hp'] = get_hp($row['bk_hp'], 1);
$log = array_shift($SMS->Log);
$log = @iconv('euc-kr', 'utf-8', $log);
sql_query("insert into {$g5['sms5_history_table']} set wr_no='$wr_no', wr_renum=0, bg_no='{$row['bg_no']}', mb_id='{$row['mb_id']}', bk_no='{$row['bk_no']}', hs_name='".addslashes($row['bk_name'])."', hs_hp='{$row['bk_hp']}', hs_datetime='".G5_TIME_YMDHIS."', hs_flag='$hs_flag', hs_code='$hs_code', hs_memo='".addslashes($hs_memo)."', hs_log='".addslashes($log)."'", false);
}
$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 데이터 입력도중 에러가 발생하였습니다.");
}
else win_close_alert("에러: SMS 데이터 입력도중 에러가 발생하였습니다.");
function win_close_alert($msg) {
+1 -1
View File
@@ -1,5 +1,5 @@
<?php
$sub_menu = "300100";
$sub_menu = "100280";
include_once('./_common.php');
include_once(G5_LIB_PATH.'/json.lib.php');
+9 -3
View File
@@ -1,5 +1,8 @@
<?php
include_once('./_common.php');
if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가
if(!$is_admin)
alert('접근 권한이 없습니다.', G5_URL);
// 4.11
@include_once($board_skin_path.'/delete_all.head.skin.php');
@@ -13,13 +16,16 @@ if ($wr_id) // 건별삭제
else // 일괄삭제
$tmp_array = $_POST['chk_wr_id'];
$chk_count = count($tmp_array);
if($chk_count > (G5_IS_MOBILE ? $board['bo_mobile_page_rows'] : $board['bo_page_rows']))
alert('올바른 방법으로 이용해 주십시오.');
// 사용자 코드 실행
@include_once($board_skin_path.'/delete_all.skin.php');
// 거꾸로 읽는 이유는 답변글부터 삭제가 되어야 하기 때문임
for ($i=count($tmp_array)-1; $i>=0; $i--)
for ($i=$chk_count-1; $i>=0; $i--)
{
$write = sql_fetch(" select * from $write_table where wr_id = '$tmp_array[$i]' ");
+2 -1
View File
@@ -76,7 +76,8 @@ if (!get_session($ss_name))
$g5['title'] = '다운로드 &gt; '.conv_subject($write['wr_subject'], 255);
$original = urlencode($file['bf_source']);
//$original = urlencode($file['bf_source']);
$original = iconv('utf-8', 'euc-kr', $file['bf_source']); // SIR 잉끼님 제안코드
@include_once($board_skin_path.'/download.tail.skin.php');
+2
View File
@@ -30,6 +30,8 @@ include_once(G5_PATH.'/head.sub.php');
if (!$name)
$name = base64_decode($email);
else
$name = get_text(stripslashes($name), true);
if (!isset($type))
$type = 0;
+1 -1
View File
@@ -53,7 +53,7 @@ if ($sca || $stx) {
/*
$sql = " select distinct wr_parent from {$write_table} where {$sql_search} ";
$result = sql_query($sql);
$total_count = mysql_num_rows($result);
$total_count = sql_num_rows($result);
*/
} else {
$sql_search = "";
+1 -1
View File
@@ -55,7 +55,7 @@ for ($i=0; $row=sql_fetch_array($result); $i++)
<input type="hidden" name="sod" value="<?php echo $sod ?>">
<input type="hidden" name="page" value="<?php echo $page ?>">
<input type="hidden" name="act" value="<?php echo $act ?>">
<input type="hidden" name="url" value="<?php echo clean_xss_tags($_SERVER['HTTP_REFERER']); ?>">
<input type="hidden" name="url" value="<?php echo get_text(clean_xss_tags($_SERVER['HTTP_REFERER'])); ?>">
<div class="tbl_head01 tbl_wrap">
<table>
+1 -1
View File
@@ -99,7 +99,7 @@ while ($row = sql_fetch_array($result))
wr_10 = '".addslashes($row2['wr_10'])."' ";
sql_query($sql);
$insert_id = mysql_insert_id();
$insert_id = sql_insert_id();
// 코멘트가 아니라면
if (!$row2['wr_is_comment'])
+1 -1
View File
@@ -4,7 +4,7 @@ include_once('./_common.php');
if ($is_guest)
alert_close('회원만 조회하실 수 있습니다.');
$g5['title'] = $member['mb_nick'].' 님의 포인트 내역';
$g5['title'] = get_text($member['mb_nick']).' 님의 포인트 내역';
include_once(G5_PATH.'/head.sub.php');
$list = array();
+2 -2
View File
@@ -17,14 +17,14 @@ if (!$mb['mb_open'] && $is_admin != 'super' && $member['mb_id'] != $mb_id)
$g5['title'] = $mb['mb_nick'].'님의 자기소개';
include_once(G5_PATH.'/head.sub.php');
$mb_nick = get_sideview($mb['mb_id'], $mb['mb_nick'], $mb['mb_email'], $mb['mb_homepage'], $mb['mb_open']);
$mb_nick = get_sideview($mb['mb_id'], get_text($mb['mb_nick']), $mb['mb_email'], $mb['mb_homepage'], $mb['mb_open']);
// 회원가입후 몇일째인지? + 1 은 당일을 포함한다는 뜻
$sql = " select (TO_DAYS('".G5_TIME_YMDHIS."') - TO_DAYS('{$mb['mb_datetime']}') + 1) as days ";
$row = sql_fetch($sql);
$mb_reg_after = $row['days'];
$mb_homepage = set_http(clean_xss_tags($mb['mb_homepage']));
$mb_homepage = set_http(get_text(clean_xss_tags($mb['mb_homepage'])));
$mb_profile = $mb['mb_profile'] ? conv_content($mb['mb_profile'],0) : '소개 내용이 없습니다.';
include_once($member_skin_path.'/profile.skin.php');
+1 -2
View File
@@ -57,8 +57,7 @@ if(is_file($skin_file)) {
}
$is_dhtml_editor = false;
// 모바일에서는 DHTML 에디터 사용불가
if ($config['cf_editor'] && $qaconfig['qa_use_editor'] && !G5_IS_MOBILE) {
if ($config['cf_editor'] && $qaconfig['qa_use_editor'] && (!is_mobile() || defined('G5_IS_MOBILE_DHTML_USE') && G5_IS_MOBILE_DHTML_USE)) {
$is_dhtml_editor = true;
}
+91 -24
View File
@@ -217,7 +217,7 @@ if($w == '' || $w == 'a' || $w == 'r') {
$sql = " insert into {$g5['qa_content_table']}
set qa_num = '$qa_num',
mb_id = '{$member['mb_id']}',
qa_name = '{$member['mb_nick']}',
qa_name = '".addslashes($member['mb_nick'])."',
qa_email = '$qa_email',
qa_hp = '$qa_hp',
qa_type = '$qa_type',
@@ -244,7 +244,7 @@ if($w == '' || $w == 'a' || $w == 'r') {
sql_query($sql);
if($w == '' || $w == 'r') {
$qa_id = mysql_insert_id();
$qa_id = sql_insert_id();
if($w == 'r' && $write['qa_related']) {
$qa_related = $write['qa_related'];
@@ -300,33 +300,100 @@ if($w == '' || $w == 'a' || $w == 'r') {
// SMS 알림
if($config['cf_sms_use'] == 'icode' && $qaconfig['qa_use_sms']) {
include_once(G5_LIB_PATH.'/icode.sms.lib.php');
if($config['cf_sms_type'] == 'LMS') {
include_once(G5_LIB_PATH.'/icode.lms.lib.php');
// 답변글은 질문 등록자에게 전송
if($w == 'a' && $write['qa_sms_recv'] && trim($write['qa_hp'])) {
$sms_content = $config['cf_title'].' '.$qaconfig['qa_title'].'에 답변이 등록되었습니다.';
$send_number = preg_replace('/[^0-9]/', '', $qaconfig['qa_send_number']);
$recv_number = preg_replace('/[^0-9]/', '', $write['qa_hp']);
$port_setting = get_icode_port_type($config['cf_icode_id'], $config['cf_icode_pw']);
if($recv_number) {
$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($recv_number, $send_number, $config['cf_icode_id'], iconv("utf-8", "euc-kr", stripslashes($sms_content)), "");
$SMS->Send();
// SMS 모듈 클래스 생성
if($port_setting !== false) {
// 답변글은 질문 등록자에게 전송
if($w == 'a' && $write['qa_sms_recv'] && trim($write['qa_hp'])) {
$sms_content = $config['cf_title'].' '.$qaconfig['qa_title'].'에 답변이 등록되었습니다.';
$send_number = preg_replace('/[^0-9]/', '', $qaconfig['qa_send_number']);
$recv_number = preg_replace('/[^0-9]/', '', $write['qa_hp']);
if($recv_number) {
$strDest = array();
$strDest[] = $recv_number;
$strCallBack = $send_number;
$strCaller = iconv_euckr(trim($config['cf_title']));
$strSubject = '';
$strURL = '';
$strData = iconv_euckr($sms_content);
$strDate = '';
$nCount = count($strDest);
$SMS = new LMS;
$SMS->SMS_con($config['cf_icode_server_ip'], $config['cf_icode_id'], $config['cf_icode_pw'], $port_setting);
$res = $SMS->Add($strDest, $strCallBack, $strCaller, $strSubject, $strURL, $strData, $strDate, $nCount);
if($res) {
$SMS->Send();
}
$SMS->Init(); // 보관하고 있던 결과값을 지웁니다.
}
}
// 문의글 등록시 관리자에게 전송
if(($w == '' || $w == 'r') && trim($qaconfig['qa_admin_hp'])) {
$sms_content = $config['cf_title'].' '.$qaconfig['qa_title'].'에 문의글이 등록되었습니다.';
$send_number = preg_replace('/[^0-9]/', '', $qa_hp);
$recv_number = preg_replace('/[^0-9]/', '', $qaconfig['qa_admin_hp']);
if($recv_number) {
$strDest = array();
$strDest[] = $recv_number;
$strCallBack = $send_number;
$strCaller = iconv_euckr(trim($config['cf_title']));;
$strSubject = '';
$strURL = '';
$strData = iconv_euckr($sms_content);
$strDate = '';
$nCount = count($strDest);
$SMS = new LMS;
$SMS->SMS_con($config['cf_icode_server_ip'], $config['cf_icode_id'], $config['cf_icode_pw'], $port_setting);
$res = $SMS->Add($strDest, $strCallBack, $strCaller, $strSubject, $strURL, $strData, $strDate, $nCount);
if($res) {
$SMS->Send();
}
$SMS->Init(); // 보관하고 있던 결과값을 지웁니다.
}
}
}
}
} else {
include_once(G5_LIB_PATH.'/icode.sms.lib.php');
// 문의글 등록시 관리자에게 전송
if(($w == '' || $w == 'r') && trim($qaconfig['qa_admin_hp'])) {
$sms_content = $config['cf_title'].' '.$qaconfig['qa_title'].'에 문의글이 등록되었습니다.';
$send_number = preg_replace('/[^0-9]/', '', $qa_hp);
$recv_number = preg_replace('/[^0-9]/', '', $qaconfig['qa_admin_hp']);
// 답변글은 질문 등록자에게 전송
if($w == 'a' && $write['qa_sms_recv'] && trim($write['qa_hp'])) {
$sms_content = $config['cf_title'].' '.$qaconfig['qa_title'].'에 답변이 등록되었습니다.';
$send_number = preg_replace('/[^0-9]/', '', $qaconfig['qa_send_number']);
$recv_number = preg_replace('/[^0-9]/', '', $write['qa_hp']);
if($recv_number) {
$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($recv_number, $send_number, $config['cf_icode_id'], iconv("utf-8", "euc-kr", stripslashes($sms_content)), "");
$SMS->Send();
if($recv_number) {
$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($recv_number, $send_number, $config['cf_icode_id'], iconv("utf-8", "euc-kr", stripslashes($sms_content)), "");
$SMS->Send();
}
}
// 문의글 등록시 관리자에게 전송
if(($w == '' || $w == 'r') && trim($qaconfig['qa_admin_hp'])) {
$sms_content = $config['cf_title'].' '.$qaconfig['qa_title'].'에 문의글이 등록되었습니다.';
$send_number = preg_replace('/[^0-9]/', '', $qa_hp);
$recv_number = preg_replace('/[^0-9]/', '', $qaconfig['qa_admin_hp']);
if($recv_number) {
$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($recv_number, $send_number, $config['cf_icode_id'], iconv("utf-8", "euc-kr", stripslashes($sms_content)), "");
$SMS->Send();
}
}
}
}
+3
View File
@@ -30,6 +30,9 @@ if ($w == "") {
alert('개인정보처리방침안내의 내용에 동의하셔야 회원가입 하실 수 있습니다.', G5_BBS_URL.'/register.php');
}
$agree = preg_replace('#[^0-9]#', '', $_POST['agree']);
$agree2 = preg_replace('#[^0-9]#', '', $_POST['agree2']);
$member['mb_birth'] = '';
$member['mb_sex'] = '';
$member['mb_name'] = '';
+1 -1
View File
@@ -4,7 +4,7 @@ include_once('./_common.php');
if (!$is_member)
alert_close('회원만 조회하실 수 있습니다.');
$g5['title'] = $member['mb_nick'].'님의 스크랩';
$g5['title'] = get_text($member['mb_nick']).'님의 스크랩';
include_once(G5_PATH.'/head.sub.php');
$sql_common = " from {$g5['scrap_table']} where mb_id = '{$member['mb_id']}' ";
+1 -1
View File
@@ -70,7 +70,7 @@ if ($wr_content && ($member['mb_level'] >= $board['bo_comment_level']))
wr_ip = '{$_SERVER['REMOTE_ADDR']}' ";
sql_query($sql);
$comment_id = mysql_insert_id();
$comment_id = sql_insert_id();
// 원글에 코멘트수 증가
sql_query(" update $write_table set wr_comment = wr_comment + 1 where wr_id = '$wr_id' ");
+1 -1
View File
@@ -120,7 +120,7 @@ if ($stx) {
$sql = " select wr_id from {$tmp_write_table} where {$sql_search} ";
$result = sql_query($sql, false);
$row['cnt'] = @mysql_num_rows($result);
$row['cnt'] = @sql_num_rows($result);
$total_count += $row['cnt'];
if ($row['cnt']) {
+1 -1
View File
@@ -12,7 +12,7 @@ switch($_REQUEST['sns']) {
header("Location:http://www.facebook.com/sharer/sharer.php?s=100&u=".$short_url."&p=".$title);
break;
case 'twitter' :
header("Location:http://twitter.com/home?status=".$title_url);
header("Location:https://twitter.com/intent/tweet?text=".$title_url);
break;
case 'gplus' :
header("Location:https://plus.google.com/share?url=".$short_url);
+10 -2
View File
@@ -390,9 +390,17 @@ if ($is_guest) {
}
$is_dhtml_editor = false;
// 모바일에서는 DHTML 에디터 사용불가
if ($config['cf_editor'] && !G5_IS_MOBILE && $board['bo_use_dhtml_editor'] && $member['mb_level'] >= $board['bo_html_level']) {
$is_dhtml_editor_use = false;
$editor_content_js = '';
if(!is_mobile() || defined('G5_IS_MOBILE_DHTML_USE') && G5_IS_MOBILE_DHTML_USE)
$is_dhtml_editor_use = true;
// 모바일에서는 G5_IS_MOBILE_DHTML_USE 설정에 따라 DHTML 에디터 적용
if ($config['cf_editor'] && $is_dhtml_editor_use && $board['bo_use_dhtml_editor'] && $member['mb_level'] >= $board['bo_html_level']) {
$is_dhtml_editor = true;
if(is_file(G5_EDITOR_PATH.'/'.$config['cf_editor'].'/autosave.editor.js'))
$editor_content_js = '<script src="'.G5_EDITOR_URL.'/'.$config['cf_editor'].'/autosave.editor.js"></script>'.PHP_EOL;
}
$editor_html = editor_html('wr_content', $content, $is_dhtml_editor);
$editor_js = '';
+1 -1
View File
@@ -167,7 +167,7 @@ if ($w == 'c') // 댓글 입력
wr_10 = '$wr_10' ";
sql_query($sql);
$comment_id = mysql_insert_id();
$comment_id = sql_insert_id();
// 원글에 댓글수 증가 & 마지막 시간 반영
sql_query(" update $write_table set wr_comment = wr_comment + 1, wr_last = '".G5_TIME_YMDHIS."' where wr_id = '$wr_id' ");
+1 -1
View File
@@ -244,7 +244,7 @@ if ($w == '' || $w == 'r') {
wr_10 = '$wr_10' ";
sql_query($sql);
$wr_id = mysql_insert_id();
$wr_id = sql_insert_id();
// 부모 아이디에 UPDATE
sql_query(" update $write_table set wr_parent = '$wr_id' where wr_id = '$wr_id' ");
+1 -1
View File
@@ -135,7 +135,7 @@ if (file_exists($dbconfig_file)) {
// mysql connect resource $g5 배열에 저장 - 명랑폐인님 제안
$g5['connect_db'] = $connect_db;
sql_query(" set names utf8 ");
sql_set_charset('utf8', $connect_db);
if(defined('G5_MYSQL_SET_MODE') && G5_MYSQL_SET_MODE) sql_query("SET SESSION sql_mode = ''");
if (defined(G5_TIMEZONE)) sql_query(" set time_zone = '".G5_TIMEZONE."'");
} else {
+7 -1
View File
@@ -5,7 +5,7 @@
********************/
define('G5_VERSION', '그누보드5');
define('G5_GNUBOARD_VER', '5.1.1');
define('G5_GNUBOARD_VER', '5.1.3');
// 이 상수가 정의되지 않으면 각각의 개별 페이지는 별도로 실행될 수 없음
define('_GNUBOARD_', true);
@@ -192,6 +192,12 @@ define('G5_THUMB_JPG_QUALITY', 90);
// 썸네일 png Compress 설정
define('G5_THUMB_PNG_COMPRESS', 5);
// 모바일 기기에서 DHTML 에디터 사용여부를 설정합니다.
define('G5_IS_MOBILE_DHTML_USE', false);
// MySQLi 사용여부를 설정합니다.
define('G5_MYSQLI_USE', true);
// ip 숨김방법 설정
/* 123.456.789.012 ip의 숨김 방법을 변경하는 방법은
\\1 은 123, \\2는 456, \\3은 789, \\4는 012에 각각 대응되므로
+7 -1
View File
@@ -283,4 +283,10 @@ a.btn_admin:focus, a.btn_admin:hover {text-decoration:none}
/*메일인증*/
.rg_em{margin-top:5px}
.rg_em caption{padding:0;font-size:0;line-height:0;overflow:hidden}
.rg_em caption{padding:0;font-size:0;line-height:0;overflow:hidden}
/*캡챠 모바일에서 피시버젼*/
#captcha.m_captcha audio{display:block;margin:5px 0 10px;}
#captcha.m_captcha #captcha_key{margin-left:3px }
#captcha.m_captcha #captcha_reload span{background:none;display:inline}
#captcha.m_captcha #captcha_reload {position:relative ;width:auto;top:0;left:0;margin:0;padding:0 10px;height:43px;border:0;background:#e4eaec;vertical-align:middle;overflow:hidden;cursor:pointer}
+12
View File
@@ -102,6 +102,7 @@ a:hover, a:focus, a:active {color:#000;text-decoration:underline}
/* 화면낭독기 사용자용 */
#hd_login_msg {position:absolute;top:0;left:0;width:0;height:0;overflow:hidden}
.msg_sound_only, .sound_only {display:inline-block;position:absolute;top:0;left:0;margin:0 !important;padding:0 !important;width:1px !important;height:1px !important;font-size:0 !important;line-height:0 !important;overflow:hidden}
/* 본문 바로가기 */
.to_content a {z-index:100000;position:absolute;top:0;left:0;width:0;height:0;font-size:0;line-height:0;overflow:hidden}
@@ -116,6 +117,17 @@ a:hover, a:focus, a:active {color:#000;text-decoration:underline}
#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_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}
/*단축키일람 */
.btn_cke_sc{background:#333;color:#fff;padding:5px;border:none;margin-bottom:5px}
.cke_sc_def {margin:0 0 5px;padding:10px;border:1px solid #ccc;background:#f7f7f7;text-align:center}
.cke_sc_def dl{margin:0 0 5px;text-align:left;zoom:1}
.cke_sc_def dl:after {display:block;visibility:hidden;clear:both;content:""}
.cke_sc_def dt, .cke_sc_def dd {float:left;margin:0;padding:5px 0;border-bottom:1px solid #e9e9e9}
.cke_sc_def dt {width:50%;font-weight:bold}
.cke_sc_def dd {width:50%}
.btn_cke_sc_close{background:#333;padding:5px;border:none;color:#fff}
/* 버튼 */
a.btn01 {display:inline-block;padding:8px 7px 7px;border:1px solid #ccc;background:#fafafa;color:#000;text-decoration:none;vertical-align:middle}
-17
View File
@@ -22,23 +22,10 @@ $g5['sms5_book_table'] = $g5['sms5_prefix'] . 'book';
$g5['sms5_book_group_table'] = $g5['sms5_prefix'] . 'book_group';
$g5['sms5_form_table'] = $g5['sms5_prefix'] . 'form';
$g5['sms5_form_group_table'] = $g5['sms5_prefix'] . 'form_group';
$g5['sms5_member_history_table'] = $g5['sms5_prefix'] . 'member_history';
if (!empty($config['cf_sms_use'])) {
$sms5 = sql_fetch("select * from {$g5['sms5_config_table']} ", false);
if( $sms5['cf_member'] && trim($member['mb_hp']) ) {
$g5['sms5_use_sideview'] = true; //회원 사이드뷰 레이어에 추가
} else {
$g5['sms5_use_sideview'] = false;
}
//==============================================================================
// 스킨경로
//------------------------------------------------------------------------------
$sms5_skin_path = G5_SMS5_PATH.'/skin/'.$sms5['cf_skin']; //sms5 스킨 path
$sms5_skin_url = G5_SMS5_URL .'/skin/'.$sms5['cf_skin']; //sms5 스킨 url
// Demo 설정
if (file_exists(G5_PATH.'/DEMO'))
@@ -49,9 +36,5 @@ if (!empty($config['cf_sms_use'])) {
// 아이코드에 실제로 보내지 않고 가상(Random)으로 전송결과를 저장합니다.
$g5['sms5_demo_send'] = true;
}
include_once(G5_LIB_PATH.'/icode.sms.lib.php');
include_once(G5_SMS5_PATH.'/sms5.lib.php');
}
?>
+5 -35
View File
@@ -169,13 +169,7 @@ document.onkeydown = noRefresh ;
$is_euckr = true;
// member table 복사
$columns = array();
$fields = mysql_list_fields(G5_MYSQL_DB, $g5['member_table']);
$count = mysql_num_fields($fields);
for ($i = 0; $i < $count; $i++) {
$fld = mysql_field_name($fields, $i);
$columns[] = $fld;
}
$columns = sql_field_names($g5['member_table']);
$sql = " select * from {$g4['member_table']} ";
$result = sql_query($sql);
@@ -325,13 +319,7 @@ document.onkeydown = noRefresh ;
echo '<li>visit sum table 복사</li>'.PHP_EOL;
// group table 복사
$columns = array();
$fields = mysql_list_fields(G5_MYSQL_DB, $g5['group_table']);
$count = mysql_num_fields($fields);
for ($i = 0; $i < $count; $i++) {
$fld = mysql_field_name($fields, $i);
$columns[] = $fld;
}
$columns = sql_field_names($g5['group_table']);
$sql = " select * from {$g4['group_table']} ";
$result = sql_query($sql);
@@ -365,13 +353,7 @@ document.onkeydown = noRefresh ;
unset($fiels);
// board 복사
$columns = array();
$fields = mysql_list_fields(G5_MYSQL_DB, $g5['board_table']);
$count = mysql_num_fields($fields);
for ($i = 0; $i < $count; $i++) {
$fld = mysql_field_name($fields, $i);
$columns[] = $fld;
}
$columns = sql_field_names($g5['board_table']);
$sql = " select * from {$g4['board_table']} ";
$result = sql_query($sql);
@@ -413,13 +395,7 @@ document.onkeydown = noRefresh ;
// 게시글 복사
if(sql_query($sql, FALSE)) {
$write_table = $g4['write_prefix'].$bo_table;
$columns2 = array();
$fields2 = mysql_list_fields(G5_MYSQL_DB, $create_table);
$count2 = mysql_num_fields($fields2);
for ($j = 0; $j < $count2; $j++) {
$fld = mysql_field_name($fields2, $j);
$columns2[] = $fld;
}
$columns2 = sql_field_names($create_table);
$sql3 = " select * from $write_table ";
$result3 = sql_query($sql3);
@@ -461,13 +437,7 @@ document.onkeydown = noRefresh ;
$tables = array('board_file', 'board_new', 'board_good', 'mail', 'memo', 'group_member', 'auth', 'popular', 'poll', 'poll_etc', 'scrap');
foreach($tables as $table) {
$columns = array();
$fields = mysql_list_fields(G5_MYSQL_DB, $g5[$table.'_table']);
$count = mysql_num_fields($fields);
for ($i = 0; $i < $count; $i++) {
$fld = mysql_field_name($fields, $i);
$columns[] = $fld;
}
$columns = sql_field_names($g5[$table.'_table']);
$src_table = $g4[$table.'_table'];
$dst_table = $g5[$table.'_table'];
+1 -1
View File
@@ -100,7 +100,7 @@ if ($is_member) { // 회원이라면 로그인 중이라는 메세지를 출력
else if ($is_admin == 'group') $sr_admin_msg = "그룹관리자 ";
else if ($is_admin == 'board') $sr_admin_msg = "게시판관리자 ";
echo '<div id="hd_login_msg">'.$sr_admin_msg.$member['mb_nick'].'님 로그인 중 ';
echo '<div id="hd_login_msg">'.$sr_admin_msg.get_text($member['mb_nick']).'님 로그인 중 ';
echo '<a href="'.G5_BBS_URL.'/logout.php">로그아웃</a></div>';
}
?>
+2 -1
View File
@@ -285,8 +285,9 @@ CREATE TABLE IF NOT EXISTS `g5_config` (
`cf_cert_limit` int(11) NOT NULL DEFAULT '0',
`cf_cert_req` tinyint(4) NOT NULL DEFAULT '0',
`cf_sms_use` varchar(255) NOT NULL DEFAULT '',
`cf_sms_type` varchar(10) NOT NULL DEFAULT '',
`cf_icode_id` varchar(255) NOT NULL DEFAULT '',
`cf_icode_pw` varchar(255) NOT NULL DEFAULT '',
`cf_icode_pw` varchar(255) NOT NULL DEFAULT '',
`cf_icode_server_ip` varchar(255) NOT NULL DEFAULT '',
`cf_icode_server_port` varchar(255) NOT NULL DEFAULT '',
`cf_googl_shorturl_apikey` varchar(255) NOT NULL DEFAULT '',
+17 -13
View File
@@ -8,6 +8,8 @@ header('Cache-Control: pre-check=0, post-check=0, max-age=0'); // HTTP/1.1
header('Pragma: no-cache'); // HTTP/1.0
include_once ('../config.php');
include_once ('../lib/common.lib.php');
$title = G5_VERSION." 설치 완료 3/3";
include_once ('./install.inc.php');
@@ -23,7 +25,7 @@ $admin_pass = $_POST['admin_pass'];
$admin_name = $_POST['admin_name'];
$admin_email = $_POST['admin_email'];
$dblink = @mysql_connect($mysql_host, $mysql_user, $mysql_pass);
$dblink = sql_connect($mysql_host, $mysql_user, $mysql_pass, $mysql_db);
if (!$dblink) {
?>
@@ -37,7 +39,7 @@ if (!$dblink) {
exit;
}
$select_db = @mysql_select_db($mysql_db, $dblink);
$select_db = sql_select_db($mysql_db, $dblink);
if (!$select_db) {
?>
@@ -52,12 +54,14 @@ if (!$select_db) {
}
$mysql_set_mode = 'false';
@mysql_query('set names utf8');
$row = mysql_fetch_assoc(mysql_query(" SELECT @@sql_mode as mode "));
sql_set_charset('utf8', $dblink);
$result = sql_query(" SELECT @@sql_mode as mode ", true, $dblink);
$row = sql_fetch_array($result);
if($row['mode']) {
@mysql_query("SET SESSION sql_mode = ''");
sql_query("SET SESSION sql_mode = ''", true, $dblink);
$mysql_set_mode = 'true';
}
unset($result);
unset($row);
?>
@@ -75,7 +79,7 @@ $file = preg_replace('/`g5_([^`]+`)/', '`'.$table_prefix.'$1', $file);
$f = explode(';', $file);
for ($i=0; $i<count($f); $i++) {
if (trim($f[$i]) == '') continue;
mysql_query($f[$i]) or die(mysql_error());
sql_query($f[$i], true, $dblink);
}
// 테이블 생성 ------------------------------------
?>
@@ -154,14 +158,14 @@ $sql = " insert into `{$table_prefix}config`
cf_stipulation = '해당 홈페이지에 맞는 회원가입약관을 입력합니다.',
cf_privacy = '해당 홈페이지에 맞는 개인정보처리방침을 입력합니다.'
";
mysql_query($sql) or die(mysql_error() . "<p>" . $sql);
sql_query($sql, true, $dblink);
// 1:1문의 설정
$sql = " insert into `{$table_prefix}qa_config`
( qa_title, qa_category, qa_skin, qa_mobile_skin, qa_use_email, qa_req_email, qa_use_hp, qa_req_hp, qa_use_editor, qa_subject_len, qa_mobile_subject_len, qa_page_rows, qa_mobile_page_rows, qa_image_width, qa_upload_size, qa_insert_content )
values
( '1:1문의', '회원|포인트', 'basic', 'basic', '1', '0', '1', '0', '1', '60', '30', '15', '15', '600', '1048576', '' ) ";
mysql_query($sql);
sql_query($sql, true, $dblink);
// 관리자 회원가입
$sql = " insert into `{$table_prefix}member`
@@ -177,15 +181,15 @@ $sql = " insert into `{$table_prefix}member`
mb_datetime = '".G5_TIME_YMDHIS."',
mb_ip = '{$_SERVER['REMOTE_ADDR']}'
";
@mysql_query($sql);
sql_query($sql, true, $dblink);
// 내용관리 생성
@mysql_query(" insert into `{$table_prefix}content` set co_id = 'company', co_html = '1', co_subject = '회사소개', co_content= '<p align=center><b>회사소개에 대한 내용을 입력하십시오.</b></p>' ") or die(mysql_error() . "<p>" . $sql);
@mysql_query(" insert into `{$table_prefix}content` set co_id = 'privacy', co_html = '1', co_subject = '개인정보 처리방침', co_content= '<p align=center><b>개인정보 처리방침에 대한 내용을 입력하십시오.</b></p>' ") or die(mysql_error() . "<p>" . $sql);
@mysql_query(" insert into `{$table_prefix}content` set co_id = 'provision', co_html = '1', co_subject = '서비스 이용약관', co_content= '<p align=center><b>서비스 이용약관에 대한 내용을 입력하십시오.</b></p>' ") or die(mysql_error() . "<p>" . $sql);
sql_query(" insert into `{$table_prefix}content` set co_id = 'company', co_html = '1', co_subject = '회사소개', co_content= '<p align=center><b>회사소개에 대한 내용을 입력하십시오.</b></p>' ", true, $dblink);
sql_query(" insert into `{$table_prefix}content` set co_id = 'privacy', co_html = '1', co_subject = '개인정보 처리방침', co_content= '<p align=center><b>개인정보 처리방침에 대한 내용을 입력하십시오.</b></p>' ", true, $dblink);
sql_query(" insert into `{$table_prefix}content` set co_id = 'provision', co_html = '1', co_subject = '서비스 이용약관', co_content= '<p align=center><b>서비스 이용약관에 대한 내용을 입력하십시오.</b></p>' ", true, $dblink);
// FAQ Master
@mysql_query(" insert into `{$table_prefix}faq_master` set fm_id = '1', fm_subject = '자주하시는 질문' ") or die(mysql_error() . "<p>" . $sql);
sql_query(" insert into `{$table_prefix}faq_master` set fm_id = '1', fm_subject = '자주하시는 질문' ", true, $dblink);
?>
<li>DB설정 완료</li>
+21 -14
View File
@@ -7,13 +7,18 @@ var save_wr_content = null;
function autosave() {
$("form#fwrite").each(function() {
if (g5_editor.indexOf("ckeditor4") != -1 && typeof(CKEDITOR.instances.wr_content)!="undefined") {
this.wr_content.value = CKEDITOR.instances.wr_content.getData();
} else if (g5_editor.indexOf("cheditor5") != -1 && typeof(ed_wr_content)!="undefined") {
this.wr_content.value = ed_wr_content.outputBodyHTML();
} else if (g5_editor.indexOf("smarteditor2") != -1 && typeof(oEditors)!="undefined" && typeof(oEditors.getById['wr_content'])!="undefined" ) {
this.wr_content.value = oEditors.getById['wr_content'].getIR();
if(g5_editor != "") {
if (g5_editor.indexOf("ckeditor4") != -1 && typeof(CKEDITOR.instances.wr_content)!="undefined") {
this.wr_content.value = CKEDITOR.instances.wr_content.getData();
} else if (g5_editor.indexOf("cheditor5") != -1 && typeof(ed_wr_content)!="undefined") {
this.wr_content.value = ed_wr_content.outputBodyHTML();
} else {
if(typeof get_editor_wr_content == "function") {
this.wr_content.value = get_editor_wr_content();
}
}
}
// 변수에 저장해 놓은 값과 다를 경우에만 임시 저장함
if (save_wr_subject != this.wr_subject.value || save_wr_content != this.wr_content.value) {
$.ajax({
@@ -78,14 +83,16 @@ $(function(){
var subject = $(data).find("item").find("subject").text();
var content = $(data).find("item").find("content").text();
$("#wr_subject").val(subject);
if (g5_editor.indexOf("ckeditor4") != -1 && typeof(CKEDITOR.instances.wr_content)!="undefined") {
CKEDITOR.instances.wr_content.setData(content);
} else if (g5_editor.indexOf("cheditor5") != -1 && typeof(ed_wr_content)!="undefined") {
ed_wr_content.putContents(content);
} else if (g5_editor.indexOf("smarteditor2") != -1 && typeof(oEditors)!="undefined" && typeof(oEditors.getById['wr_content'])!="undefined" ) {
oEditors.getById["wr_content"].exec("SET_CONTENTS", [""]);
//oEditors.getById["wr_content"].exec("SET_IR", [""]);
oEditors.getById["wr_content"].exec("PASTE_HTML", [content]);
if(g5_editor != "") {
if (g5_editor.indexOf("ckeditor4") != -1 && typeof(CKEDITOR.instances.wr_content)!="undefined") {
CKEDITOR.instances.wr_content.setData(content);
} else if (g5_editor.indexOf("cheditor5") != -1 && typeof(ed_wr_content)!="undefined") {
ed_wr_content.putContents(content);
} else {
if(typeof put_editor_wr_content == "function") {
put_editor_wr_content(content);
}
}
} else {
$("#fwrite #wr_content").val(content);
}
-13
View File
@@ -503,14 +503,6 @@ var win_zip = function(frm_name, frm_zip, frm_addr1, frm_addr2, frm_addr3, frm_j
}
}
/**
* sms5 창
**/
var win_sms5 = function(href) {
var new_win = window.open(href, 'win_sms5', 'width=474, height=560, scrollbars=1');
new_win.focus();
}
/**
* 새로운 비밀번호 분실 창 : 101123
**/
@@ -590,11 +582,6 @@ $(function(){
return false;
});
$(".win_sms5").click(function() {
win_sms5(this.href);
return false;
});
/*
$(".win_poll").click(function() {
win_poll(this.href);
+189 -56
View File
@@ -380,11 +380,12 @@ function get_list($write_row, $board, $skin_url, $subject_len=40)
else
$list['last2'] = substr($list['last2'],5,5);
$list['wr_homepage'] = get_text(addslashes($list['wr_homepage']));
$list['wr_homepage'] = get_text($list['wr_homepage']);
$tmp_name = get_text(cut_str($list['wr_name'], $config['cf_cut_name'])); // 설정된 자리수 만큼만 이름 출력
$tmp_name2 = cut_str($list['wr_name'], $config['cf_cut_name']); // 설정된 자리수 만큼만 이름 출력
if ($board['bo_use_sideview'])
$list['name'] = get_sideview($list['mb_id'], $tmp_name, $list['wr_email'], $list['wr_homepage']);
$list['name'] = get_sideview($list['mb_id'], $tmp_name2, $list['wr_email'], $list['wr_homepage']);
else
$list['name'] = '<span class="'.($list['mb_id']?'sv_member':'sv_guest').'">'.$tmp_name.'</span>';
@@ -1201,10 +1202,9 @@ function get_sideview($mb_id, $name='', $email='', $homepage='')
$email = base64_encode($email);
$homepage = set_http(clean_xss_tags($homepage));
$name = preg_replace("/\&#039;/", "", $name);
$name = preg_replace("/\'/", "", $name);
$name = preg_replace("/\"/", "&#034;", $name);
$title_name = $name;
$name = get_text($name, 0, true);
$email = get_text($email);
$homepage = get_text($homepage);
$tmp_name = "";
if ($mb_id) {
@@ -1240,10 +1240,6 @@ function get_sideview($mb_id, $name='', $email='', $homepage='')
$title_mb_id = '[비회원]';
}
$name = get_text($name);
$email = get_text($email);
$homepage = get_text($homepage);
$str = "<span class=\"sv_wrap\">\n";
$str .= $tmp_name."\n";
@@ -1264,10 +1260,6 @@ function get_sideview($mb_id, $name='', $email='', $homepage='')
}
if($mb_id)
$str2 .= "<a href=\"".G5_BBS_URL."/new.php?mb_id=".$mb_id."\">전체게시물</a>\n";
if($g5['sms5_use_sideview']){
$mb = get_member($mb_id, " mb_open, mb_sms , mb_hp ");
if( $mb['mb_open'] && $mb['mb_sms'] && $mb['mb_hp'] ) $str2 .= "<a href=\"".G5_SMS5_URL."/?mb_id=".$mb_id."\" class=\"win_sms5\" target=\"_blank\">문자보내기</a>\n";
}
if($is_admin == "super" && $mb_id) {
$str2 .= "<a href=\"".G5_ADMIN_URL."/member_form.php?w=u&amp;mb_id=".$mb_id."\" target=\"_blank\">회원정보변경</a>\n";
$str2 .= "<a href=\"".G5_ADMIN_URL."/point_list.php?sfl=mb_id&amp;stx=".$mb_id."\" target=\"_blank\">포인트내역</a>\n";
@@ -1365,12 +1357,19 @@ function cut_str($str, $len, $suffix="…")
// TEXT 형식으로 변환
function get_text($str, $html=0)
function get_text($str, $html=0, $restore=false)
{
/* 3.22 막음 (HTML 체크 줄바꿈시 출력 오류때문)
$source[] = "/ /";
$target[] = " &nbsp;";
*/
$source[] = "<";
$target[] = "&lt;";
$source[] = ">";
$target[] = "&gt;";
$source[] = "\"";
$target[] = "&#034;";
$source[] = "\'";
$target[] = "&#039;";
if($restore)
$str = str_replace($target, $source, $str);
// 3.31
// TEXT 출력일 경우 &amp; &nbsp; 등의 코드를 정상으로 출력해 주기 위함
@@ -1378,21 +1377,12 @@ function get_text($str, $html=0)
$str = html_symbol($str);
}
$source[] = "/</";
$target[] = "&lt;";
$source[] = "/>/";
$target[] = "&gt;";
//$source[] = "/\"/";
//$target[] = "&#034;";
$source[] = "/\'/";
$target[] = "&#039;";
//$source[] = "/}/"; $target[] = "&#125;";
if ($html) {
$source[] = "/\n/";
$source[] = "\n";
$target[] = "<br/>";
}
return preg_replace($source, $target, $str);
return str_replace($source, $target, $str);
}
@@ -1422,11 +1412,22 @@ function html_symbol($str)
*************************************************************************/
// DB 연결
function sql_connect($host, $user, $pass)
function sql_connect($host, $user, $pass, $db=G5_MYSQL_DB)
{
global $g5;
return @mysql_connect($host, $user, $pass);
if(function_exists('mysqli_connect') && G5_MYSQLI_USE) {
$link = mysqli_connect($host, $user, $pass, $db);
// 연결 오류 발생 시 스크립트 종료
if (mysqli_connect_errno()) {
die('Connect Error: '.mysqli_connect_error());
}
} else {
$link = mysql_connect($host, $user, $pass);
}
return $link;
}
@@ -1435,16 +1436,36 @@ function sql_select_db($db, $connect)
{
global $g5;
return @mysql_select_db($db, $connect);
if(function_exists('mysqli_select_db') && G5_MYSQLI_USE)
return @mysqli_select_db($connect, $db);
else
return @mysql_select_db($db, $connect);
}
// mysql_query 와 mysql_error 를 한꺼번에 처리
// mysql connect resource 지정 - 명랑폐인님 제안
function sql_query($sql, $error=G5_DISPLAY_SQL_ERROR)
function sql_set_charset($charset, $link=null)
{
global $g5;
if(!$link)
$link = $g5['connect_db'];
if(function_exists('mysqli_set_charset') && G5_MYSQLI_USE)
mysqli_set_charset($link, $charset);
else
sql_query(" set names {$charset} ");
}
// mysqli_query 와 mysqli_error 를 한꺼번에 처리
// mysql connect resource 지정 - 명랑폐인님 제안
function sql_query($sql, $error=G5_DISPLAY_SQL_ERROR, $link=null)
{
global $g5;
if(!$link)
$link = $g5['connect_db'];
// Blind SQL Injection 취약점 해결
$sql = trim($sql);
// union의 사용을 허락하지 않습니다.
@@ -1453,20 +1474,34 @@ function sql_query($sql, $error=G5_DISPLAY_SQL_ERROR)
// `information_schema` DB로의 접근을 허락하지 않습니다.
$sql = preg_replace("#^select.*from.*where.*`?information_schema`?.*#i", "select 1", $sql);
if ($error)
$result = @mysql_query($sql, $g5['connect_db']) or die("<p>$sql<p>" . mysql_errno() . " : " . mysql_error() . "<p>error file : {$_SERVER['SCRIPT_NAME']}");
else
$result = @mysql_query($sql, $g5['connect_db']);
if(function_exists('mysqli_query') && G5_MYSQLI_USE) {
if ($error) {
$result = @mysqli_query($link, $sql) or die("<p>$sql<p>" . mysqli_errno($link) . " : " . mysqli_error($link) . "<p>error file : {$_SERVER['SCRIPT_NAME']}");
} else {
$result = @mysqli_query($link, $sql);
}
} else {
if ($error) {
$result = @mysql_query($sql, $link) or die("<p>$sql<p>" . mysql_errno() . " : " . mysql_error() . "<p>error file : {$_SERVER['SCRIPT_NAME']}");
} else {
$result = @mysql_query($sql, $link);
}
}
return $result;
}
// 쿼리를 실행한 후 결과값에서 한행을 얻는다.
function sql_fetch($sql, $error=G5_DISPLAY_SQL_ERROR)
function sql_fetch($sql, $error=G5_DISPLAY_SQL_ERROR, $link=null)
{
$result = sql_query($sql, $error);
//$row = @sql_fetch_array($result) or die("<p>$sql<p>" . mysql_errno() . " : " . mysql_error() . "<p>error file : $_SERVER['SCRIPT_NAME']");
global $g5;
if(!$link)
$link = $g5['connect_db'];
$result = sql_query($sql, $error, $link);
//$row = @sql_fetch_array($result) or die("<p>$sql<p>" . mysqli_errno() . " : " . mysqli_error() . "<p>error file : $_SERVER['SCRIPT_NAME']");
$row = sql_fetch_array($result);
return $row;
}
@@ -1475,7 +1510,11 @@ function sql_fetch($sql, $error=G5_DISPLAY_SQL_ERROR)
// 결과값에서 한행 연관배열(이름으로)로 얻는다.
function sql_fetch_array($result)
{
$row = @mysql_fetch_assoc($result);
if(function_exists('mysqli_fetch_assoc') && G5_MYSQLI_USE)
$row = @mysqli_fetch_assoc($result);
else
$row = @mysql_fetch_assoc($result);
return $row;
}
@@ -1485,7 +1524,10 @@ function sql_fetch_array($result)
// 단, 결과 값은 스크립트(script) 실행부가 종료되면서 메모리에서 자동적으로 지워진다.
function sql_free_result($result)
{
return mysql_free_result($result);
if(function_exists('mysqli_free_result') && G5_MYSQLI_USE)
return mysqli_free_result($result);
else
return mysql_free_result($result);
}
@@ -1499,6 +1541,74 @@ function sql_password($value)
}
function sql_insert_id($link=null)
{
global $g5;
if(!$link)
$link = $g5['connect_db'];
if(function_exists('mysqli_insert_id') && G5_MYSQLI_USE)
return mysqli_insert_id($link);
else
return mysql_insert_id($link);
}
function sql_num_rows($result)
{
if(function_exists('mysqli_num_rows') && G5_MYSQLI_USE)
return mysqli_num_rows($result);
else
return mysql_num_rows($result);
}
function sql_field_names($table, $link=null)
{
global $g5;
if(!$link)
$link = $g5['connect_db'];
$columns = array();
$sql = " select * from `$table` limit 1 ";
$result = sql_query($sql, $link);
if(function_exists('mysqli_fetch_field') && G5_MYSQLI_USE) {
while($field = mysqli_fetch_field($result)) {
$columns[] = $field->name;
}
} else {
$i = 0;
$cnt = mysql_num_fields($result);
while($i < $cnt) {
$field = mysql_fetch_field($result, $i);
$columns[] = $field->name;
$i++;
}
}
return $columns;
}
function sql_error_info($link=null)
{
global $g5;
if(!$link)
$link = $g5['connect_db'];
if(function_exists('mysqli_error') && G5_MYSQLI_USE) {
return mysqli_errno($link) . ' : ' . mysqli_error($link);
} else {
return mysql_errno($link) . ' : ' . mysql_error($link);
}
}
// PHPMyAdmin 참고
function get_table_define($table, $crlf="\n")
{
@@ -1899,12 +2009,15 @@ function convert_charset($from_charset, $to_charset, $str)
}
// mysql_real_escape_string 의 alias 기능을 한다.
function sql_real_escape_string($field)
// mysqli_real_escape_string 의 alias 기능을 한다.
function sql_real_escape_string($str, $link=null)
{
global $g5;
return mysql_real_escape_string($field, $g5['connect_db']);
if(!$link)
$link = $g5['connect_db'];
return mysqli_real_escape_string($link, $str);
}
function escape_trim($field)
@@ -2643,9 +2756,9 @@ function module_exec_check($exe, $type)
// 주소출력
function print_address($addr1, $addr2, $addr3, $addr4)
{
$address = trim($addr1);
$addr2 = trim($addr2);
$addr3 = trim($addr3);
$address = get_text(trim($addr1));
$addr2 = get_text(trim($addr2));
$addr3 = get_text(trim($addr3));
if($addr4 == 'N') {
if($addr2)
@@ -2723,11 +2836,6 @@ function clean_xss_tags($str)
{
$str = preg_replace('#</*(?:applet|b(?:ase|gsound|link)|embed|frame(?:set)?|i(?:frame|layer)|l(?:ayer|ink)|meta|object|s(?:cript|tyle)|title|xml)[^>]*+>#i', '', $str);
$search = array('"', "'");
$replace = array('&#34;', '&#39;');
$str = str_replace($search, $replace, $str);
return $str;
}
@@ -3028,4 +3136,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;
}
}
?>
+249
View File
@@ -0,0 +1,249 @@
<?php
if (!defined('_GNUBOARD_')) exit;
// 요금제에 따른 port 구분
function get_icode_port_type($id, $pw)
{
$userinfo = get_icode_userinfo($id, $pw);
if($userinfo['payment'] == 'A') { // 충전제
return 1;
} else if($userinfo['payment'] == 'C') { // 정액제
return 1;
} else {
return false;
}
}
/**
* SMS 발송을 관장하는 메인 클래스이다.
*
* 접속, 발송, URL발송, 결과등의 실질적으로 쓰이는 모든 부분이 포함되어 있다.
*/
class LMS {
var $icode_id;
var $icode_pw;
var $socket_host;
var $socket_port;
var $socket_portcode;
var $Data = array();
var $Result = array();
// SMS 서버 접속
function SMS_con($host, $id, $pw, $portcode) {
$this->socket_host = $host;
$this->socket_portcode = $portcode;
$this->icode_id = FillSpace($id, 10);
$this->icode_pw = FillSpace($pw, 10);
}
function Init() {
$this->Data = ""; // 발송하기 위한 패킷내용이 배열로 들어간다.
$this->Result = ""; // 발송결과값이 배열로 들어간다.
}
function Add($strDest, $strCallBack, $strCaller, $strSubject, $strURL, $strData, $strDate="", $nCount) {
// 문자 타입별 Port 설정.
$sendType = strlen($strData) > 90 ? 1 : 0; // 0: SMS / 1: LMS
/* 개발 완료 후 아래 포트를 rand 함수를 이용하는 라인으로 변경 바랍니다.*/
// 충전식
if ($this->socket_portcode == 1) {
if($sendType && $sendType == 1) {
//$this->socket_port = 8200; // LMS
$this->socket_port=(int)rand(8200,8201); // LMS
} else {
//$this->socket_port = 6295; // SMS
$this->socket_port=(int)rand(6295,6297); // SMS
}
}
// 정액제
else {
if($sendType && $sendType == 1) {
//$this->socket_port = 8300; // LMS
$this->socket_port=(int)rand(8300,8301); // LMS
} else {
//$this->socket_port = 6291; // SMS
$this->socket_port=(int)rand(6291,6293); // SMS
}
}
$strCallBack = FillSpace($strCallBack, 11); // 회신번호
$strDate = FillSpace($strDate, 12); // 즉시(12byte 공백), 예약전송(YmdHi)
if ($sendType && $sendType == 1) {
/** LMS 제목 **/
/*
제목필드의 값이 없을 경우 단말기 기종및 설정에 따라 표기 방법이 다름
1.설정에서 제목필드보기 설정 Disable -> 제목필드값을 넣어도 미표기
2.설정에서 제목필드보기 설정 Enable -> 제목을 넣지 않을 경우 제목없음으로 자동표시
제목의 첫글자에 "<",">", 개행문자가 있을경우 단말기종류 및 통신사에 따라 메세지 전송실패 -> 글자를 체크하거나 취환처리요망
*/
$strSubject = str_replace("\r\n", " ", $strSubject);
$strSubject = str_replace("<", "[", $strSubject);
$strSubject = str_replace(">", "]", $strSubject);
$strSubject = FillSpace($strSubject,30);
$strData = FillSpace(CutChar($strData,1500),1500);
} else if (!$strURL) {
$strData = FillSpace(CutChar($strData,90),90);
$strCaller = FillSpace($strCaller,10);
} else {
$strURL = FillSpace($strURL,50);
}
$Error = CheckCommonTypeDest($strDest, $nCount);
$Error = is_vaild_callback($strCallBack);
$Error = CheckCommonTypeDate($strDate);
for ($i=0; $i<$nCount; $i++) {
$strDest[$i] = FillSpace($strDest[$i],11);
if ($sendType && $sendType == 1) {
$this->Data[$i] = '01144 '.$this->icode_id.$this->icode_pw.$strDest[$i].$strCallBack.$strSubject.$strDate.$strData;
} else if (!$strURL) {
$this->Data[$i] = '01144 '.$this->icode_id.$this->icode_pw.$strDest[$i].$strCallBack.$strCaller.$strDate.$strData;
} else {
$strData = FillSpace(CheckCallCenter($strURL, $strDest[$i], $strData),80);
$this->Data[$i] = '05173 '.$this->icode_id.$this->icode_pw.$strDest[$i].$strCallBack.$strURL.$strDate.$strData;
}
}
return true;
}
function Send() {
$fsocket = fsockopen($this->socket_host,$this->socket_port, $errno, $errstr, 2);
if (!$fsocket) return false;
set_time_limit(300);
foreach($this->Data as $puts) {
fputs($fsocket, $puts);
while(!$gets) { $gets = fgets($fsocket,30); }
$dest = substr($puts,26,11);
if (substr($gets,0,19) == "0223 00".$dest) {
$this->Result[] = $dest.":".substr($gets,19,10);
} else {
$this->Result[$dest] = $dest.":Error(".substr($gets,6,2).")";
}
$gets = "";
}
fclose($fsocket);
$this->Data = "";
return true;
}
}
/**
* 원하는 문자열의 길이를 원하는 길이만큼 공백을 넣어 맞추도록 합니다.
*
* @param text 원하는 문자열입니다.
* size 원하는 길이입니다.
* @return 변경된 문자열을 넘깁니다.
*/
function FillSpace($text,$size) {
for ($i=0; $i<$size; $i++) $text.= " ";
$text = substr($text,0,$size);
return $text;
}
/**
* 원하는 문자열을 원하는 길에 맞는지 확인해서 조정하는 기능을 합니다.
*
* @param word 원하는 문자열입니다.
* cut 원하는 길이입니다.
* @return 변경된 문자열입니다.
*/
function CutChar($word, $cut) {
$word=substr($word,0,$cut); // 필요한 길이만큼 취함.
for ($k = $cut-1; $k > 1; $k--) {
if (ord(substr($word,$k,1))<128) break; // 한글값은 160 이상.
}
$word = substr($word, 0, $cut-($cut-$k+1)%2);
return $word;
}
/**
* 수신번호의 값이 정확한 값인지 확인합니다.
*
* @param strDest 발송번호 배열입니다.
* nCount 배열의 크기입니다.
* @return 처리결과입니다.
*/
function CheckCommonTypeDest($strDest, $nCount) {
for ($i=0; $i<$nCount; $i++) {
$strDest[$i] = preg_replace("/[^0-9]/","",$strDest[$i]);
if(!preg_match("/^01[0-9]{8,9}$/", $strDest[$i]))
return "수신번호오류";
}
}
/**
* 회신번호 유효성 여부조회 *
* @param string callback 회신번호
* @return 처리결과입니다
* 한국인터넷진흥원 권고
*/
function is_vaild_callback($callback){
$_callback = preg_replace('/[^0-9]/', '', $callback);
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 "회신번호오류";
}
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 "회신번호오류";
}
}
/**
* 예약날짜의 값이 정확한 값인지 확인합니다.
*
* @param string strDate (예약시간)
* @return 처리결과입니다
*/
function CheckCommonTypeDate($strDate) {
$strDate = preg_replace("/[^0-9]/", "", $strDate);
if ($strDate){
if (!checkdate(substr($strDate,4,2),substr($strDate,6,2),substr($rsvTime,0,4)))
return "예약날짜오류";
if (substr($strDate,8,2)>23 || substr($strDate,10,2)>59) return false;
return "예약날짜오류";
}
}
/**
* URL콜백용으로 메세지 크기를 수정합니다.
*
* @param url URL 내용입니다.
* msg 결과메시지입니다.
* desk 문자내용입니다.
*/
function CheckCallCenter($url, $dest, $data) {
switch (substr($dest,0,3)) {
case '010': //20바이트
return CutChar($data,20); break;
case '011': //80바이트
return CutChar($data,80); break;
case '016': // 80바이트
return CutChar($data,80); break;
case '017': // URL 포함 80바이트
return CutChar($data,80 - strlen($url)); break;
case '018': // 20바이트
return CutChar($data,20); break;
case '019': // 20바이트
return CutChar($data,20); break;
default:
return CutChar($data,80); break;
}
}
?>
+1 -1
View File
@@ -7,7 +7,7 @@ function outlogin($skin_dir='basic')
global $config, $member, $g5, $urlencode, $is_admin, $is_member;
if (array_key_exists('mb_nick', $member)) {
$nick = cut_str($member['mb_nick'], $config['cf_cut_name']);
$nick = get_text(cut_str($member['mb_nick'], $config['cf_cut_name']));
}
if (array_key_exists('mb_point', $member)) {
$point = number_format($member['mb_point']);
+1 -1
View File
@@ -17,7 +17,7 @@ function popular($skin_dir='basic', $pop_cnt=7, $date_cnt=3)
for ($i=0; $row=sql_fetch_array($result); $i++) {
$list[$i] = $row;
// 스크립트등의 실행금지
$list[$i]['pp_word'] = get_text($list[$i]['pp_word']);
//$list[$i]['pp_word'] = get_text($list[$i]['pp_word']);
}
if(preg_match('#^theme/(.+)$#', $skin_dir, $match)) {
+1 -1
View File
@@ -474,7 +474,7 @@ and the roundoff errors in the Gaussian blur process, are welcome.
$radius = abs(round($radius)); // Only integers make sense.
if ($radius == 0) {
return $img; imagedestroy($img); break; }
return $img; imagedestroy($img); }
$w = imagesx($img); $h = imagesy($img);
$imgCanvas = imagecreatetruecolor($w, $h);
$imgBlur = imagecreatetruecolor($w, $h);
+2 -3
View File
@@ -193,8 +193,7 @@ function html_auto_br(obj)
function fwrite_submit(f)
{
<?php echo get_editor_js('wr_content', $is_dhtml_editor); ?>
<?php echo chk_editor_js('wr_content', $is_dhtml_editor); ?>
<?php echo $editor_js; // 에디터 사용시 자바스크립트에서 내용을 폼필드로 넣어주며 내용이 입력되었는지 검사함 ?>
var subject = "";
var content = "";
@@ -243,7 +242,7 @@ function fwrite_submit(f)
}
}
<?php if ($is_guest) { echo chk_captcha_js(); } ?>
<?php echo $captcha_js; // 캡챠 사용시 자바스크립트에서 입력된 캡챠를 검사함 ?>
document.getElementById("btn_submit").disabled = "disabled";
+2 -3
View File
@@ -192,8 +192,7 @@ function html_auto_br(obj)
function fwrite_submit(f)
{
<?php echo get_editor_js('wr_content', $is_dhtml_editor); ?>
<?php echo chk_editor_js('wr_content', $is_dhtml_editor); ?>
<?php echo $editor_js; // 에디터 사용시 자바스크립트에서 내용을 폼필드로 넣어주며 내용이 입력되었는지 검사함 ?>
var subject = "";
var content = "";
@@ -242,7 +241,7 @@ function fwrite_submit(f)
}
}
<?php if ($is_guest) { echo chk_captcha_js(); } ?>
<?php echo $captcha_js; // 캡챠 사용시 자바스크립트에서 입력된 캡챠를 검사함 ?>
document.getElementById("btn_submit").disabled = "disabled";
+1 -1
View File
@@ -13,7 +13,7 @@ add_stylesheet('<link rel="stylesheet" href="'.$member_skin_url.'/style.css">',
<input type="hidden" name="attach" value="2">
<input type="hidden" name="token" value="<?php echo $token ?>">
<?php if ($is_member) { // 회원이면 ?>
<input type="hidden" name="fnick" value="<?php echo $member['mb_nick'] ?>">
<input type="hidden" name="fnick" value="<?php echo get_text($member['mb_nick']); ?>">
<input type="hidden" name="fmail" value="<?php echo $member['mb_email'] ?>">
<?php } ?>
+13 -13
View File
@@ -20,8 +20,8 @@ add_stylesheet('<link rel="stylesheet" href="'.$member_skin_url.'/style.css">',
<input type="hidden" name="cert_no" value="">
<?php if (isset($member['mb_sex'])) { ?><input type="hidden" name="mb_sex" value="<?php echo $member['mb_sex'] ?>"><?php } ?>
<?php if (isset($member['mb_nick_date']) && $member['mb_nick_date'] > date("Y-m-d", G5_SERVER_TIME - ($config['cf_nick_modify'] * 86400))) { // 닉네임수정일이 지나지 않았다면 ?>
<input type="hidden" name="mb_nick_default" value="<?php echo $member['mb_nick'] ?>">
<input type="hidden" name="mb_nick" value="<?php echo $member['mb_nick'] ?>">
<input type="hidden" name="mb_nick_default" value="<?php echo get_text($member['mb_nick']) ?>">
<input type="hidden" name="mb_nick" value="<?php echo get_text($member['mb_nick']) ?>">
<?php } ?>
<div class="tbl_frm01 tbl_wrap">
@@ -55,7 +55,7 @@ add_stylesheet('<link rel="stylesheet" href="'.$member_skin_url.'/style.css">',
<?php if ($config['cf_cert_use']) { ?>
<span class="frm_info">아이핀 본인확인 후에는 이름이 자동 입력되고 휴대폰 본인확인 후에는 이름과 휴대폰번호가 자동 입력되어 수동으로 입력할수 없게 됩니다.</span>
<?php } ?>
<input type="text" id="reg_mb_name" name="mb_name" value="<?php echo $member['mb_name'] ?>" <?php echo $required ?> <?php echo $readonly; ?> class="frm_input <?php echo $required ?> <?php echo $readonly ?>">
<input type="text" id="reg_mb_name" name="mb_name" value="<?php echo get_text($member['mb_name']) ?>" <?php echo $required ?> <?php echo $readonly; ?> class="frm_input <?php echo $required ?> <?php echo $readonly ?>">
<?php
if($config['cf_cert_use']) {
if($config['cf_cert_ipin'])
@@ -87,8 +87,8 @@ add_stylesheet('<link rel="stylesheet" href="'.$member_skin_url.'/style.css">',
공백없이 한글,영문,숫자만 입력 가능 (한글2자, 영문4자 이상)<br>
닉네임을 바꾸시면 앞으로 <?php echo (int)$config['cf_nick_modify'] ?>일 이내에는 변경 할 수 없습니다.
</span>
<input type="hidden" name="mb_nick_default" value="<?php echo isset($member['mb_nick'])?$member['mb_nick']:''; ?>">
<input type="text" name="mb_nick" value="<?php echo isset($member['mb_nick'])?$member['mb_nick']:''; ?>" id="reg_mb_nick" required class="frm_input required nospace" maxlength="20">
<input type="hidden" name="mb_nick_default" value="<?php echo isset($member['mb_nick'])?get_text($member['mb_nick']):''; ?>">
<input type="text" name="mb_nick" value="<?php echo isset($member['mb_nick'])?get_text($member['mb_nick']):''; ?>" id="reg_mb_nick" required class="frm_input required nospace" maxlength="20">
<span id="msg_mb_nick"></span>
</td>
</tr>
@@ -111,14 +111,14 @@ add_stylesheet('<link rel="stylesheet" href="'.$member_skin_url.'/style.css">',
<?php if ($config['cf_use_homepage']) { ?>
<tr>
<th scope="row"><label for="reg_mb_homepage">홈페이지<?php if ($config['cf_req_homepage']){ ?><strong class="sound_only">필수</strong><?php } ?></label></th>
<td><input type="url" name="mb_homepage" value="<?php echo $member['mb_homepage'] ?>" id="reg_mb_homepage" class="frm_input <?php echo $config['cf_req_homepage']?"required":""; ?>" maxlength="255" <?php echo $config['cf_req_homepage']?"required":""; ?>></td>
<td><input type="url" name="mb_homepage" value="<?php echo get_text($member['mb_homepage']) ?>" id="reg_mb_homepage" class="frm_input <?php echo $config['cf_req_homepage']?"required":""; ?>" maxlength="255" <?php echo $config['cf_req_homepage']?"required":""; ?>></td>
</tr>
<?php } ?>
<?php if ($config['cf_use_tel']) { ?>
<tr>
<th scope="row"><label for="reg_mb_tel">전화번호<?php if ($config['cf_req_tel']) { ?><strong class="sound_only">필수</strong><?php } ?></label></th>
<td><input type="text" name="mb_tel" value="<?php echo $member['mb_tel'] ?>" id="reg_mb_tel" class="frm_input <?php echo $config['cf_req_tel']?"required":""; ?>" maxlength="20" <?php echo $config['cf_req_tel']?"required":""; ?>></td>
<td><input type="text" name="mb_tel" value="<?php echo get_text($member['mb_tel']) ?>" id="reg_mb_tel" class="frm_input <?php echo $config['cf_req_tel']?"required":""; ?>" maxlength="20" <?php echo $config['cf_req_tel']?"required":""; ?>></td>
</tr>
<?php } ?>
@@ -126,9 +126,9 @@ add_stylesheet('<link rel="stylesheet" href="'.$member_skin_url.'/style.css">',
<tr>
<th scope="row"><label for="reg_mb_hp">휴대폰번호<?php if ($config['cf_req_hp']) { ?><strong class="sound_only">필수</strong><?php } ?></label></th>
<td>
<input type="text" name="mb_hp" value="<?php echo $member['mb_hp'] ?>" id="reg_mb_hp" <?php echo ($config['cf_req_hp'])?"required":""; ?> class="frm_input <?php echo ($config['cf_req_hp'])?"required":""; ?>" maxlength="20">
<input type="text" name="mb_hp" value="<?php echo get_text($member['mb_hp']) ?>" id="reg_mb_hp" <?php echo ($config['cf_req_hp'])?"required":""; ?> class="frm_input <?php echo ($config['cf_req_hp'])?"required":""; ?>" maxlength="20">
<?php if ($config['cf_cert_use'] && $config['cf_cert_hp']) { ?>
<input type="hidden" name="old_mb_hp" value="<?php echo $member['mb_hp'] ?>">
<input type="hidden" name="old_mb_hp" value="<?php echo get_text($member['mb_hp']) ?>">
<?php } ?>
</td>
</tr>
@@ -145,13 +145,13 @@ add_stylesheet('<link rel="stylesheet" href="'.$member_skin_url.'/style.css">',
<input type="text" name="mb_zip" value="<?php echo $member['mb_zip1'].$member['mb_zip2']; ?>" id="reg_mb_zip" <?php echo $config['cf_req_addr']?"required":""; ?> class="frm_input <?php echo $config['cf_req_addr']?"required":""; ?>" size="5" maxlength="6">
<button type="button" class="btn_frmline" onclick="win_zip('fregisterform', 'mb_zip', 'mb_addr1', 'mb_addr2', 'mb_addr3', 'mb_addr_jibeon');">주소 검색</button><br>
<label for="reg_mb_addr1" class="sound_only">주소<?php echo $config['cf_req_addr']?'<strong class="sound_only"> 필수</strong>':''; ?></label>
<input type="text" name="mb_addr1" value="<?php echo $member['mb_addr1'] ?>" id="reg_mb_addr1" <?php echo $config['cf_req_addr']?"required":""; ?> class="frm_input frm_address <?php echo $config['cf_req_addr']?"required":""; ?>" size="50"><br>
<input type="text" name="mb_addr1" value="<?php echo get_text($member['mb_addr1']) ?>" id="reg_mb_addr1" <?php echo $config['cf_req_addr']?"required":""; ?> class="frm_input frm_address <?php echo $config['cf_req_addr']?"required":""; ?>" size="50"><br>
<label for="reg_mb_addr2" class="sound_only">상세주소</label>
<input type="text" name="mb_addr2" value="<?php echo $member['mb_addr2'] ?>" id="reg_mb_addr2" class="frm_input frm_address" size="50">
<input type="text" name="mb_addr2" value="<?php echo get_text($member['mb_addr2']) ?>" id="reg_mb_addr2" class="frm_input frm_address" size="50">
<br>
<label for="reg_mb_addr3" class="sound_only">참고항목</label>
<input type="text" name="mb_addr3" value="<?php echo $member['mb_addr3'] ?>" id="reg_mb_addr3" class="frm_input frm_address" size="50" readonly="readonly">
<input type="hidden" name="mb_addr_jibeon" value="<?php echo $member['mb_addr_jibeon']; ?>">
<input type="text" name="mb_addr3" value="<?php echo get_text($member['mb_addr3']) ?>" id="reg_mb_addr3" class="frm_input frm_address" size="50" readonly="readonly">
<input type="hidden" name="mb_addr_jibeon" value="<?php echo get_text($member['mb_addr_jibeon']); ?>">
</td>
</tr>
<?php } ?>
+1 -1
View File
@@ -57,7 +57,7 @@ add_stylesheet('<link rel="stylesheet" href="'.$poll_skin_url.'/style.css">', 0)
<input type="hidden" name="po_id" value="<?php echo $po_id ?>">
<input type="hidden" name="w" value="">
<input type="hidden" name="skin_dir" value="<?php echo $skin_dir ?>">
<?php if ($is_member) { ?><input type="hidden" name="pc_name" value="<?php echo cut_str($member['mb_nick'],255) ?>"><?php } ?>
<?php if ($is_member) { ?><input type="hidden" name="pc_name" value="<?php echo get_text(cut_str($member['mb_nick'],255)); ?>"><?php } ?>
<h3><?php echo $po_etc ?></h3>
<div class="tbl_frm01 tbl_wrap">
+1 -1
View File
@@ -10,7 +10,7 @@ add_stylesheet('<link rel="stylesheet" href="'.$popular_skin_url.'/style.css">',
<h2>인기검색어</h2>
<ul>
<?php for ($i=0; $i<count($list); $i++) { ?>
<li><a href="<?php echo G5_BBS_URL ?>/search.php?sfl=wr_subject&amp;sop=and&amp;stx=<?php echo urlencode($list[$i]['pp_word']) ?>"><?php echo $list[$i]['pp_word'] ?></a></li>
<li><a href="<?php echo G5_BBS_URL ?>/search.php?sfl=wr_subject&amp;sop=and&amp;stx=<?php echo urlencode($list[$i]['pp_word']) ?>"><?php echo get_text($list[$i]['pp_word']); ?></a></li>
<?php } ?>
</ul>
</div>
+3 -3
View File
@@ -53,7 +53,7 @@ add_stylesheet('<link rel="stylesheet" href="'.$qa_skin_url.'/style.css">', 0);
<tr>
<th scope="row"><label for="qa_email">이메일</label></th>
<td>
<input type="email" name="qa_email" value="<?php echo $write['qa_email']; ?>" id="qa_email" <?php echo $req_email; ?> class="<?php echo $req_email.' '; ?>frm_input email" maxlength="100">
<input type="email" name="qa_email" value="<?php echo get_text($write['qa_email']); ?>" id="qa_email" <?php echo $req_email; ?> class="<?php echo $req_email.' '; ?>frm_input email" maxlength="100">
<input type="checkbox" name="qa_email_recv" value="1" id="qa_email_recv" <?php if($write['qa_email_recv']) echo 'checked="checked"'; ?>>
<label for="qa_email_recv">답변받기</label>
</td>
@@ -64,7 +64,7 @@ add_stylesheet('<link rel="stylesheet" href="'.$qa_skin_url.'/style.css">', 0);
<tr>
<th scope="row"><label for="qa_hp">휴대폰</label></th>
<td>
<input type="text" name="qa_hp" value="<?php echo $write['qa_hp']; ?>" id="qa_hp" <?php echo $req_hp; ?> class="<?php echo $req_hp.' '; ?>frm_input" size="30">
<input type="text" name="qa_hp" value="<?php echo get_text($write['qa_hp']); ?>" id="qa_hp" <?php echo $req_hp; ?> class="<?php echo $req_hp.' '; ?>frm_input" size="30">
<?php if($qaconfig['qa_use_sms']) { ?>
<input type="checkbox" name="qa_sms_recv" value="1" <?php if($write['qa_sms_recv']) echo 'checked="checked"'; ?>> 답변등록 SMS알림 수신
<?php } ?>
@@ -75,7 +75,7 @@ add_stylesheet('<link rel="stylesheet" href="'.$qa_skin_url.'/style.css">', 0);
<tr>
<th scope="row"><label for="qa_subject">제목<strong class="sound_only">필수</strong></label></th>
<td>
<input type="text" name="qa_subject" value="<?php echo $write['qa_subject']; ?>" id="qa_subject" required class="frm_input required" maxlength="255">
<input type="text" name="qa_subject" value="<?php echo get_text($write['qa_subject']); ?>" id="qa_subject" required class="frm_input required" maxlength="255">
</td>
</tr>
@@ -0,0 +1,13 @@
function get_editor_wr_content()
{
return oEditors.getById['wr_content'].getIR();;
}
function put_editor_wr_content(content)
{
oEditors.getById["wr_content"].exec("SET_CONTENTS", [""]);
//oEditors.getById["wr_content"].exec("SET_IR", [""]);
oEditors.getById["wr_content"].exec("PASTE_HTML", [content]);
return;
}
+14 -11
View File
@@ -31,10 +31,10 @@ class KCAPTCHA{
}
}
closedir($handle);
}
}
$alphabet_length=strlen($alphabet);
do{
/*
// generating random keystring
@@ -132,7 +132,7 @@ class KCAPTCHA{
$img2=imagecreatetruecolor($width, $height+($show_credits?12:0));
$foreground=imagecolorallocate($img2, $foreground_color[0], $foreground_color[1], $foreground_color[2]);
$background=imagecolorallocate($img2, $background_color[0], $background_color[1], $background_color[2]);
imagefilledrectangle($img2, 0, 0, $width-1, $height-1, $background);
imagefilledrectangle($img2, 0, 0, $width-1, $height-1, $background);
imagefilledrectangle($img2, 0, $height, $width-1, $height+12, $foreground);
$credits=empty($credits)?$_SERVER['HTTP_HOST']:$credits;
imagestring($img2, 2, $width/2-imagefontwidth(2)*strlen($credits)/2, $height-2, $credits, $background);
@@ -203,12 +203,12 @@ class KCAPTCHA{
imagesetpixel($img2, $x, $y, imagecolorallocate($img2, $newred, $newgreen, $newblue));
}
}
header('Expires: Mon, 26 Jul 1997 05:00:00 GMT');
header('Cache-Control: no-store, no-cache, must-revalidate');
header('Cache-Control: post-check=0, pre-check=0', FALSE);
header('Expires: Mon, 26 Jul 1997 05:00:00 GMT');
header('Cache-Control: no-store, no-cache, must-revalidate');
header('Cache-Control: post-check=0, pre-check=0', FALSE);
header('Pragma: no-cache');
if(function_exists("imagejpeg")){
header("Content-Type: image/jpeg");
imagejpeg($img2, null, $jpeg_quality);
@@ -235,15 +235,18 @@ class KCAPTCHA{
// 캡챠 HTML 코드 출력
function captcha_html($class="captcha")
{
if(is_mobile())
$class .= ' m_captcha';
$html .= "\n".'<script>var g5_captcha_url = "'.G5_CAPTCHA_URL.'";</script>';
//$html .= "\n".'<script>var g5_captcha_path = "'.G5_CAPTCHA_PATH.'";</script>';
$html .= "\n".'<script src="'.G5_CAPTCHA_URL.'/kcaptcha.js"></script>';
$html .= "\n".'<fieldset id="captcha" class="'.$class.'">';
$html .= "\n".'<legend><label for="captcha_key">자동등록방지</label></legend>';
if (G5_IS_MOBILE) $html .= '<audio src="#" id="captcha_audio" controls></audio>';
if (is_mobile()) $html .= '<audio src="#" id="captcha_audio" controls></audio>';
//$html .= "\n".'<img src="#" alt="" id="captcha_img">';
$html .= "\n".'<img src="javascript:void(0);" alt="" id="captcha_img">';
if (!G5_IS_MOBILE) $html .= "\n".'<button type="button" id="captcha_mp3"><span></span>숫자음성듣기</button>';
if (!is_mobile()) $html .= "\n".'<button type="button" id="captcha_mp3"><span></span>숫자음성듣기</button>';
$html .= "\n".'<button type="button" id="captcha_reload"><span></span>새로고침</button>';
$html .= '<input type="text" name="captcha_key" id="captcha_key" required class="captcha_box required" size="6" maxlength="6">';
$html .= "\n".'<span id="captcha_info">자동등록방지 숫자를 순서대로 입력하세요.</span>';
+2 -2
View File
@@ -29,9 +29,9 @@ if($config['cf_cert_use'] == 2) {
} else {
// 테스트일 경우
$cpCode = 'P00000000000';
$idpUrl = 'https://tipin.ok-name.co.kr:8443/tis/ti/POTI90B_SendCertInfo.jsp';
$idpUrl = 'https://tmpin.ok-name.co.kr:5443/tis/ti/POTI90B_SendCertInfo.jsp';
$EndPointURL = 'http://twww.ok-name.co.kr:8888/KcbWebService/OkNameService'; //EndPointURL, 테스트 서버
$kcbForm_action = 'https://tipin.ok-name.co.kr:8443/tis/ti/POTI01A_LoginRP.jsp';
$kcbForm_action = 'https://tmpin.ok-name.co.kr:5443/tis/ti/POTI01A_LoginRP.jsp';
}
$idpCode = 'V';
Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 60 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 67 B

-48
View File
@@ -1,48 +0,0 @@
#sms5_send {position:relative}
.sms5_box {position:relative;padding:10px;border-radius:5px;background:#fbec99}
.sms5_box .box_ico {position:absolute;top:20px;left:-7px;width:7px;height:13px;background:url('img/box_ico.gif') no-repeat}
.sms5_box .box_txt {border:0;background:transparent;word-break:break-all;resize:none;overflow:hidden}
.sms5_box .box_square {width:100px;height:90px}
#send_write {padding:0 20px !important}
#send_write h2 {padding:0 0 10px}
#send_write .sms5_box {margin:0 0 5px;text-align:center}
#send_write .box_txt {width:90%;height:80px}
#wr_message_lbl {position:absolute;top:45px;left:48%;color:#999;font-size:0.95em;letter-spacing:-0.1em}
.write_inner {position:relative;padding:10px 0;border-bottom:1px solid #efefef;zoom:1}
.write_inner:after {display:block;visibility:hidden;clear:both;content:''}
.write_inner h2 {margin:0;padding:0 0 20px !important}
.write_floater {position:absolute;top:10px;right:0;text-align:right}
.write_floater_btn {margin:0;padding:0;border:0;background:transparent;color:#999;font-size:0.95em;letter-spacing:-0.1em}
#write_rcv {margin:0 0 10px}
#write_rcv strong {display:inline-block;margin:0 10px 0 0}
#write_reply label {display:inline-block;margin:0 10px 0 0;font-weight:bold}
#write_reply #mh_reply {padding:0 5px;width:90px;height:20px;border:1px solid #e9e9e9;text-align:center;line-height:1.8em}
#write_rsv .rsv_line {display:block;height:10px}
.write_scemo strong {display:block;margin:0 0 10px}
.write_scemo .scemo_btn {margin:0 0 1px;padding:10px 0;width:100%;border:0;background:#686868;color:#fff;text-align:center}
.write_scemo .scemo_list {display:none;letter-spacing:-4px}
.write_scemo .list_closer {margin:5px 0;text-align:right}
.write_scemo .list_closer_btn {margin:0;padding:10px 0;width:100%;border:0;background:#383838;color:#fff;letter-spacing:0}
.write_scemo .scemo_add {margin:0;padding:0;width:25%;height:40px;border:1px solid #e9e9e9;background:transparent;letter-spacing:0}
#write_sc .scemo_list {margin:0 0 20px}
#sms_byte {position:absolute;top:-27px;right:0;color:#999}
#send_emo {position:relative;padding:20px;border-top:1px solid #e9e9e9;background:#f7f7f7}
#send_emo h2 {margin:0 0 20px}
#send_emo .tmp_loading {display:block;padding:180px 0 0;text-align:center}
#send_emo #emo_sel {position:absolute;top:20px;right:20px;margin:0}
#send_emo .emo_list {margin:0;padding:0;list-style:none}
#send_emo li {float:left;margin:0 2% 10px 0;width:49%}
#send_emo li:nth-of-type(even) {margin:0 0 10px}
#send_emo .sms5_box {background:#fbec99}
#send_emo .box_ico {display:none}
#send_emo .box_txt {cursor:pointer}
#send_emo .emo_tit {display:block;height:20px;line-height:2em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
#send_emo .btn_submit {padding:0 5px;height:24px;border:1px solid #ccc;background:#fafafa;color:#000;font-size:0.95em;vertical-align:middle;cursor:pointer}
-50
View File
@@ -1,50 +0,0 @@
#sms5_send {position:relative}
.sms5_box {position:relative;padding:10px;border-radius:5px;background:#fbec99}
.sms5_box .box_ico {position:absolute;top:20px;left:-7px;width:7px;height:13px;background:url('img/box_ico.gif') no-repeat}
.sms5_box .box_txt {border:0;background:transparent;word-break:break-all;resize:none;overflow:hidden}
.sms5_box .box_square {width:100px;height:90px}
#send_write {padding:0 20px !important}
#send_write h2 {padding:0 0 10px}
#send_write .sms5_box {margin:0 0 5px;text-align:center}
#send_write .box_txt {width:390px;height:80px}
#wr_message_lbl {position:absolute;top:45px;left:200px;color:#999;font-size:0.95em;letter-spacing:-0.1em}
.write_inner {position:relative;padding:10px 0;border-bottom:1px solid #efefef;zoom:1}
.write_inner:after {display:block;visibility:hidden;clear:both;content:''}
.write_inner h2 {margin:0;padding:0 0 10px !important}
.write_floater {position:absolute;top:15px;right:0;text-align:right}
.write_floater_btn {margin:0;padding:0;border:0;background:transparent;color:#999;font-size:0.95em;letter-spacing:-0.1em}
#write_rcv {float:left;height:22px;line-height:1.8em}
#write_rcv strong {display:inline-block;margin:0 10px 0 0}
#write_reply {float:right}
#write_reply label {display:inline-block;margin:0 10px 0 0;font-weight:bold}
#write_reply #mh_reply {padding:0 5px;width:90px;height:20px;border:1px solid #e9e9e9;text-align:center;line-height:1.8em}
.write_scemo {width:48%}
.write_scemo strong {display:block;margin:0 0 10px}
.write_scemo .scemo_list {letter-spacing:-4px}
.write_scemo .scemo_add {margin:0;padding:0;height:25px;border:1px solid #e9e9e9;background:transparent;letter-spacing:0}
#write_sc {float:left}
#write_sc .scemo_add {width:25px}
#write_emo {float:right}
#write_emo .scemo_list {text-align:right}
#write_emo .scemo_add {width:66px}
#write_emo .emo_long {}
#sms_byte {position:absolute;top:-27px;right:0;color:#999}
#send_emo {position:relative;padding:20px;border-top:1px solid #e9e9e9;background:#f7f7f7}
#send_emo h2 {margin:0 0 20px}
#send_emo .tmp_loading {display:block;padding:180px 0 0;text-align:center}
#send_emo #emo_sel {position:absolute;top:20px;right:20px;margin:0}
#send_emo .emo_list {margin:0;padding:0;list-style:none}
#send_emo li {float:left;margin:0 10px 10px 0 !important;margin:0 5px 10px 0;width:113px !important;width:110px}
#send_emo li:nth-of-type(3n) {margin:0 0 10px !important}
#send_emo .sms5_box {background:#fbec99}
#send_emo .box_ico {display:none}
#send_emo .box_txt {cursor:pointer}
#send_emo .emo_tit {display:block;height:20px;line-height:2em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
#send_emo .btn_submit {padding:0 5px;height:24px;border:1px solid #ccc;background:#fafafa;color:#000;font-size:0.95em;vertical-align:middle;cursor:pointer}
-378
View File
@@ -1,378 +0,0 @@
<?php
if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가
// add_stylesheet('css 구문', 출력순서); 숫자가 작을 수록 먼저 출력됨
add_stylesheet('<link rel="stylesheet" href="'.$sms5_skin_url.'/style.css">', 0);
?>
<div id="sms5_send" class="new_win">
<h1 id="win_title">SMS 보내기</h1>
<div id="send_write">
<form action="<?php echo $action_url?>" onsubmit="return smssend_submit(this);" name="smsform" method="post" autocomplete="off">
<input type="hidden" name="token" value="<?php echo $token?>">
<input type="hidden" name="mh_hp" value="">
<input type="hidden" name="mb_id" value="<?php echo $mb_id?>">
<h2>보낼내용</h2>
<div class="sms5_box">
<span class="box_ico"></span>
<label for="mh_message" id="wr_message_lbl">내용</label>
<textarea name="mh_message" id="mh_message" class="box_txt" onkeyup="byte_check('mh_message', 'sms_bytes');"></textarea>
<div id="sms_byte"><span id="sms_bytes">0</span> / 80 byte</div>
</div>
<div class="write_inner">
<?php if( $mb['mb_id'] ){ //회원 아이디가 있다면 ?>
<div id="write_rcv">
<strong>수신회원</strong> <?php echo $mb['mb_nick']?>
</div>
<?php } ?>
<div id="write_reply">
<label for="mh_reply">회신번호</label>
<input type="text" name="mh_reply" value="<?php echo $member['mb_hp']?>" id="mh_reply" <?php if ($is_admin != 'super') { ?> readonly<?php } ?>>
</div>
</div>
<div id="write_rsv" class="write_inner">
<h2>예약전송</h2>
<div class="write_floater">
<label for="booking_flag"><span class="sound_only">예약전송 </span>사용</label>
<input type="checkbox" name="booking_flag" id="booking_flag" value="true" onclick="booking_show()" >
</div>
<select name="mh_by" id="mh_by" disabled>
<option value="<?php echo date('Y')?>"><?php echo date('Y')?></option>
<option value="<?php echo date('Y')+1?>"><?php echo date('Y')+1?></option>
</select> 년
<select name="mh_bm" id="mh_bm" disabled>
<?php for ($i=1; $i<=12; $i++) { ?>
<option value="<?php echo sprintf("%02d",$i)?>" <?php echo date('m')==$i?'selected':''?>><?php echo sprintf("%02d",$i)?></option>
<?php } ?>
</select> 월
<select name="mh_bd" id="mh_bd" disabled>
<?php for ($i=1; $i<=31; $i++) { ?>
<option value="<?php echo sprintf("%02d",$i)?>" <?php echo date('d')==$i?'selected':''?>><?php echo sprintf("%02d",$i)?></option>
<?php } ?>
</select> 일
<select name="mh_bh" id="mh_bh" disabled>
<?php for ($i=0; $i<24; $i++) { ?>
<option value="<?php echo sprintf("%02d",$i)?>" <?php echo date('H')+1==$i?'selected':''?>><?php echo sprintf("%02d",$i)?></option>
<?php } ?>
</select> 시
<select name="mh_bi" id="mh_bi" disabled>
<?php for ($i=0; $i<=59; $i+=5) { ?>
<option value="<?php echo sprintf("%02d",$i)?>"><?php echo sprintf("%02d",$i)?></option>
<?php } ?>
</select> 분
</div>
<div class="write_inner">
<div id="write_sc" class="write_scemo">
<strong>특수기호</strong>
<div class="scemo_list">
<button type="button" class="scemo_add" onclick="javascript:add('■')">■</button>
<button type="button" class="scemo_add" onclick="javascript:add('□')">□</button>
<button type="button" class="scemo_add" onclick="javascript:add('▣')">▣</button>
<button type="button" class="scemo_add" onclick="javascript:add('◈')">◈</button>
<button type="button" class="scemo_add" onclick="javascript:add('◆')">◆</button>
<button type="button" class="scemo_add" onclick="javascript:add('◇')">◇</button>
<button type="button" class="scemo_add" onclick="javascript:add('♥')">♥</button>
<button type="button" class="scemo_add" onclick="javascript:add('♡')">♡</button>
<button type="button" class="scemo_add" onclick="javascript:add('●')">●</button>
<button type="button" class="scemo_add" onclick="javascript:add('○')">○</button>
<button type="button" class="scemo_add" onclick="javascript:add('▲')">▲</button>
<button type="button" class="scemo_add" onclick="javascript:add('▼')">▼</button>
<button type="button" class="scemo_add" onclick="javascript:add('▶')">▶</button>
<button type="button" class="scemo_add" onclick="javascript:add('▷')">▷</button>
<button type="button" class="scemo_add" onclick="javascript:add('◀')">◀</button>
<button type="button" class="scemo_add" onclick="javascript:add('◁')">◁</button>
<button type="button" class="scemo_add" onclick="javascript:add('☎')">☎</button>
<button type="button" class="scemo_add" onclick="javascript:add('☏')">☏</button>
<button type="button" class="scemo_add" onclick="javascript:add('♠')">♠</button>
<button type="button" class="scemo_add" onclick="javascript:add('♤')">♤</button>
<button type="button" class="scemo_add" onclick="javascript:add('♣')">♣</button>
<button type="button" class="scemo_add" onclick="javascript:add('♧')">♧</button>
<button type="button" class="scemo_add" onclick="javascript:add('★')">★</button>
<button type="button" class="scemo_add" onclick="javascript:add('☆')">☆</button>
<button type="button" class="scemo_add" onclick="javascript:add('☞')">☞</button>
<button type="button" class="scemo_add" onclick="javascript:add('☜')">☜</button>
<button type="button" class="scemo_add" onclick="javascript:add('▒')">▒</button>
<button type="button" class="scemo_add" onclick="javascript:add('⊙')">⊙</button>
<button type="button" class="scemo_add" onclick="javascript:add('㈜')">㈜</button>
<button type="button" class="scemo_add" onclick="javascript:add('№')">№</button>
<button type="button" class="scemo_add" onclick="javascript:add('㉿')">㉿</button>
<button type="button" class="scemo_add" onclick="javascript:add('♨')">♨</button>
<button type="button" class="scemo_add" onclick="javascript:add('™')">™</button>
<button type="button" class="scemo_add" onclick="javascript:add('℡')">℡</button>
<button type="button" class="scemo_add" onclick="javascript:add('∑')">∑</button>
<button type="button" class="scemo_add" onclick="javascript:add('∏')">∏</button>
<button type="button" class="scemo_add" onclick="javascript:add('♬')">♬</button>
<button type="button" class="scemo_add" onclick="javascript:add('♪')">♪</button>
<button type="button" class="scemo_add" onclick="javascript:add('♩')">♩</button>
<button type="button" class="scemo_add" onclick="javascript:add('♭')">♭</button>
</div>
</div>
<div id="write_emo" class="write_scemo">
<strong>이모티콘</strong>
<div class="scemo_list">
<button type="button" class="scemo_add" onclick="javascript:add('*^^*')">*^^*</button>
<button type="button" class="scemo_add" onclick="javascript:add('♡.♡')">♡.♡</button>
<button type="button" class="scemo_add" onclick="javascript:add('@_@')">@_@</button>
<button type="button" class="scemo_add" onclick="javascript:add('☞_☜')">☞_☜</button>
<button type="button" class="scemo_add" onclick="javascript:add('ㅠ ㅠ')">ㅠ ㅠ</button>
<button type="button" class="scemo_add" onclick="javascript:add('Θ.Θ')">Θ.Θ</button>
<button type="button" class="scemo_add" onclick="javascript:add('^_~♥')">^_~♥</button>
<button type="button" class="scemo_add" onclick="javascript:add('~o~')">~o~</button>
<button type="button" class="scemo_add" onclick="javascript:add('★.★')">★.★</button>
<button type="button" class="scemo_add" onclick="javascript:add('(!.!)')">(!.!)</button>
<button type="button" class="scemo_add" onclick="javascript:add('⊙.⊙')">⊙.⊙</button>
<button type="button" class="scemo_add" onclick="javascript:add('q.p')">q.p</button>
<button type="button" class="scemo_add emo_long" onclick="javascript:add('↖(^-^)↗')">↖(^-^)↗</button>
<button type="button" class="scemo_add emo_long" onclick="javascript:add('(*^-^*)')">(*^-^*)</button>
<button type="button" class="scemo_add emo_long" onclick="javascript:add('d(^-^)b')">d(^-^)b</button>
</div>
</div>
</div>
<div class="win_btn">
<input type="submit" value="전송" class="btn_submit">
<button type="button" onclick="window.close();">창닫기</button>
</div>
</form>
</div>
<?php if( count($emoticon_group) ){ //회원에게 공개된 이모티콘 그룹이 있다면 ?>
<div id="send_emo">
<h2>이모티콘 목록</h2>
<form name="emoticon_form">
<label for="emo_sel" class="sound_only">이모티콘 그룹</label>
<select name="fg_no" id="emo_sel">
<option value="" <?php echo $fg_no?'':'selected'?>>전체</option>
<?php for($i=0; $i<count($emoticon_group); $i++) {?>
<option value="<?php echo $emoticon_group[$i]['fg_no']?>"<?php echo ($fg_no==$emoticon_group[$i]['fg_no'])?'selected':''?>><?php echo $emoticon_group[$i]['fg_name']?> (<?php echo number_format($emoticon_group[$i]['fg_count'])?>)</option>
<?php } ?>
</select>
</form>
<ul class="emo_list">
</ul>
<nav class="pg_wrap">
<span class="pg" id="emoticon_pg"></span>
</nav>
<form name="emoticon_search" id="emoticon_search">
<input type="hidden" name="page" id="hidden_page" >
</form>
</div>
<?php } ?>
</div>
<script>
function sms_error(obj, err) {
alert(err);
obj.value = '';
}
function smssend_submit(f)
{
if (!f.mh_message.value)
{
alert('보내실 문자를 입력하십시오.');
f.mh_message.focus();
return false;
}
if (!f.mh_reply.value)
{
alert('발신 번호를 입력하십시오.\n\n발신 번호는 회원정보의 휴대폰번호입니다.');
return false;
}
return true;
//f.submit();
//win.focus();
}
function booking_show()
{
if (document.getElementById('booking_flag').checked) {
document.getElementById('mh_by').disabled = false;
document.getElementById('mh_bm').disabled = false;
document.getElementById('mh_bd').disabled = false;
document.getElementById('mh_bh').disabled = false;
document.getElementById('mh_bi').disabled = false;
} else {
document.getElementById('mh_by').disabled = true;
document.getElementById('mh_bm').disabled = true;
document.getElementById('mh_bd').disabled = true;
document.getElementById('mh_bh').disabled = true;
document.getElementById('mh_bi').disabled = true;
}
}
function add(str) {
var conts = document.getElementById('mh_message');
var bytes = document.getElementById('sms_bytes');
conts.focus();
conts.value+=str;
byte_check('mh_message', 'sms_bytes');
return;
}
function byte_check(mh_message, sms_bytes)
{
var conts = document.getElementById(mh_message);
var bytes = document.getElementById(sms_bytes);
var i = 0;
var cnt = 0;
var exceed = 0;
var ch = '';
for (i=0; i<conts.value.length; i++)
{
ch = conts.value.charAt(i);
if (escape(ch).length > 4) {
cnt += 2;
} else {
cnt += 1;
}
}
bytes.innerHTML = cnt;
if (cnt > 80)
{
exceed = cnt - 80;
alert('메시지 내용은 80바이트를 넘을수 없습니다.\n\n작성하신 메세지 내용은 '+ exceed +'byte가 초과되었습니다.\n\n초과된 부분은 자동으로 삭제됩니다.');
var tcnt = 0;
var xcnt = 0;
var tmp = conts.value;
for (i=0; i<tmp.length; i++)
{
ch = tmp.charAt(i);
if (escape(ch).length > 4) {
tcnt += 2;
} else {
tcnt += 1;
}
if (tcnt > 80) {
tmp = tmp.substring(0,i);
break;
} else {
xcnt = tcnt;
}
}
conts.value = tmp;
bytes.innerHTML = xcnt;
return;
}
}
byte_check('mh_message', 'sms_bytes');
</script>
<script src="<?php echo G5_JS_URL?>/jquery.sms_paging.js"></script>
<script>
var emoticon_list = {
go : function(fo_no){
var wr_message = document.getElementById('mh_message');
//wr_message.focus();
wr_message.value = document.getElementById('fo_contents_' + fo_no).value;
byte_check('mh_message', 'sms_bytes');
}
};
(function($){
$(".box_txt").bind("focus keydown", function(){
$("#wr_message_lbl").hide();
});
var $search_form = $("form#emoticon_search");
emoticon_list.fn_paging = function( hash_val,total_page ){
$('#emoticon_pg').paging({
current:hash_val ? hash_val : 1,
max:total_page == 0 || total_page ? total_page : 45,
length : 5,
liitem : 'span',
format:'{0}',
next:'next',
prev:'prev',
first:'&lt;&lt;',last:'&gt;&gt;',
href:'#',
itemCurrent:'pg_current',
itemClass:'pg_page',
appendhtml:'<span class="sound_only">페이지</span>',
onclick:function(e,page){
e.preventDefault();
$("#hidden_page").val( page );
var params = $($search_form).serialize();
emoticon_list.select_page( params, "json" );
}
});
}
emoticon_list.loading = function( el, src ){
if( !el || !src) return;
$(el).append("<span class='tmp_loading'><img src='"+src+"' title='loading...' ></span>");
}
emoticon_list.loadingEnd = function( el ){
$(".tmp_loading", $(el)).remove();
}
emoticon_list.select_page = function( params, type ){
if( !type ){
type = "json";
}
emoticon_list.loading(".emo_list", "<?php echo $sms5_skin_url?>/img/ajax-loader.gif" ); //로딩 이미지 보여줌
$.ajax({
url: "./ajax.sms_emoticon.php",
cache:false,
timeout : 30000,
dataType:type,
data:params,
success: function(HttpRequest) {
if( type == "json" ){
if (HttpRequest.error) {
alert(HttpRequest.error);
return false;
} else {
var $emoticon_box = $(".emo_list");
var list_text = "";
$.each( HttpRequest.list_text , function(num) {
var list_data = HttpRequest.list_text[num];
list_text = list_text + "<li class=\"screen_list sms5_box\"><span class=\"box_ico\"></span><textarea class=\"sms_textarea box_txt box_square\" readonly onclick=\"emoticon_list.go("+list_data.fo_no+")\">"+list_data.fo_content+"</textarea><textarea id=\"fo_contents_"+list_data.fo_no+"\" style=\"display:none; width:0; height:0\">"+list_data.fo_content+"</textarea><strong class=\"emo_tit\">"+list_data.fo_name+"</strong></li>";
});
if( !list_text ){
list_text = "<li>데이터가 없습니다.</li>";
}
$emoticon_box.html( list_text );
emoticon_list.fn_paging( HttpRequest.page, HttpRequest.total_page );
$("#hidden_page").val( HttpRequest.page );
}
}
emoticon_list.loadingEnd(".emo_list"); //로딩 이미지 지움
}
});
}
$("#emo_sel").bind("change", function(e){
var params = { fg_no : $(this).val() };
$search_form[0].reset();
$("#hidden_fg_no").val( $(this).val() );
emoticon_list.select_page( params, "json" );
});
$search_form.submit(function(e){
e.preventDefault();
var $form = $(this),
params = $(this).serialize();
emoticon_list.select_page( params, "json" );
});
if( $("#emo_sel").length ){
$("#emo_sel").trigger("change");
}
})(jQuery);
</script>
@@ -1,394 +0,0 @@
<?php
if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가
// add_stylesheet('css 구문', 출력순서); 숫자가 작을 수록 먼저 출력됨
add_stylesheet('<link rel="stylesheet" href="'.$sms5_skin_url.'/mobile.css">', 0);
?>
<div id="sms5_send" class="new_win">
<h1 id="win_title">SMS 보내기</h1>
<div id="send_write">
<form action="<?php echo $action_url?>" onsubmit="return smssend_submit(this);" name="smsform" method="post" autocomplete="off">
<input type="hidden" name="token" value="<?php echo $token?>">
<input type="hidden" name="mh_hp" value="">
<input type="hidden" name="mb_id" value="<?php echo $mb_id?>">
<h2>보낼내용</h2>
<div class="sms5_box">
<span class="box_ico"></span>
<label for="mh_message" id="wr_message_lbl">내용</label>
<textarea name="mh_message" id="mh_message" class="box_txt" onkeyup="byte_check('mh_message', 'sms_bytes');"></textarea>
<div id="sms_byte"><span id="sms_bytes">0</span> / 80 byte</div>
</div>
<div class="write_inner">
<?php if( $mb['mb_id'] ){ //회원 아이디가 있다면 ?>
<div id="write_rcv">
<strong>수신회원</strong> <?php echo $mb['mb_nick']?>
</div>
<?php } ?>
<div id="write_reply">
<label for="mh_reply">회신번호</label>
<input type="text" name="mh_reply" value="<?php echo $member['mb_hp']?>" id="mh_reply" <?php if ($is_admin != 'super') { ?> readonly<?php } ?>>
</div>
</div>
<div id="write_rsv" class="write_inner">
<h2>예약전송</h2>
<div class="write_floater">
<label for="booking_flag"><span class="sound_only">예약전송 </span>사용</label>
<input type="checkbox" name="booking_flag" id="booking_flag" value="true" onclick="booking_show()" >
</div>
<select name="mh_by" id="mh_by" disabled>
<option value="<?php echo date('Y')?>"><?php echo date('Y')?></option>
<option value="<?php echo date('Y')+1?>"><?php echo date('Y')+1?></option>
</select> 년
<select name="mh_bm" id="mh_bm" disabled>
<?php for ($i=1; $i<=12; $i++) { ?>
<option value="<?php echo sprintf("%02d",$i)?>" <?php echo date('m')==$i?'selected':''?>><?php echo sprintf("%02d",$i)?></option>
<?php } ?>
</select> 월
<span class="rsv_line"></span>
<select name="mh_bd" id="mh_bd" disabled>
<?php for ($i=1; $i<=31; $i++) { ?>
<option value="<?php echo sprintf("%02d",$i)?>" <?php echo date('d')==$i?'selected':''?>><?php echo sprintf("%02d",$i)?></option>
<?php } ?>
</select> 일
<select name="mh_bh" id="mh_bh" disabled>
<?php for ($i=0; $i<24; $i++) { ?>
<option value="<?php echo sprintf("%02d",$i)?>" <?php echo date('H')+1==$i?'selected':''?>><?php echo sprintf("%02d",$i)?></option>
<?php } ?>
</select> 시
<select name="mh_bi" id="mh_bi" disabled>
<?php for ($i=0; $i<=59; $i+=5) { ?>
<option value="<?php echo sprintf("%02d",$i)?>"><?php echo sprintf("%02d",$i)?></option>
<?php } ?>
</select> 분
</div>
<div class="write_inner">
<div id="write_sc" class="write_scemo">
<button type="button" id="scemo_sc" class="scemo_btn">특수기호</button>
<div class="scemo_list scemo_sc">
<div class="list_closer"><button type="button" class="list_closer_btn">특수기호닫기</button></div>
<button type="button" class="scemo_add" onclick="javascript:add('■')">■</button>
<button type="button" class="scemo_add" onclick="javascript:add('□')">□</button>
<button type="button" class="scemo_add" onclick="javascript:add('▣')">▣</button>
<button type="button" class="scemo_add" onclick="javascript:add('◈')">◈</button>
<button type="button" class="scemo_add" onclick="javascript:add('◆')">◆</button>
<button type="button" class="scemo_add" onclick="javascript:add('◇')">◇</button>
<button type="button" class="scemo_add" onclick="javascript:add('♥')">♥</button>
<button type="button" class="scemo_add" onclick="javascript:add('♡')">♡</button>
<button type="button" class="scemo_add" onclick="javascript:add('●')">●</button>
<button type="button" class="scemo_add" onclick="javascript:add('○')">○</button>
<button type="button" class="scemo_add" onclick="javascript:add('▲')">▲</button>
<button type="button" class="scemo_add" onclick="javascript:add('▼')">▼</button>
<button type="button" class="scemo_add" onclick="javascript:add('▶')">▶</button>
<button type="button" class="scemo_add" onclick="javascript:add('▷')">▷</button>
<button type="button" class="scemo_add" onclick="javascript:add('◀')">◀</button>
<button type="button" class="scemo_add" onclick="javascript:add('◁')">◁</button>
<button type="button" class="scemo_add" onclick="javascript:add('☎')">☎</button>
<button type="button" class="scemo_add" onclick="javascript:add('☏')">☏</button>
<button type="button" class="scemo_add" onclick="javascript:add('♠')">♠</button>
<button type="button" class="scemo_add" onclick="javascript:add('♤')">♤</button>
<button type="button" class="scemo_add" onclick="javascript:add('♣')">♣</button>
<button type="button" class="scemo_add" onclick="javascript:add('♧')">♧</button>
<button type="button" class="scemo_add" onclick="javascript:add('★')">★</button>
<button type="button" class="scemo_add" onclick="javascript:add('☆')">☆</button>
<button type="button" class="scemo_add" onclick="javascript:add('☞')">☞</button>
<button type="button" class="scemo_add" onclick="javascript:add('☜')">☜</button>
<button type="button" class="scemo_add" onclick="javascript:add('▒')">▒</button>
<button type="button" class="scemo_add" onclick="javascript:add('⊙')">⊙</button>
<button type="button" class="scemo_add" onclick="javascript:add('㈜')">㈜</button>
<button type="button" class="scemo_add" onclick="javascript:add('№')">№</button>
<button type="button" class="scemo_add" onclick="javascript:add('㉿')">㉿</button>
<button type="button" class="scemo_add" onclick="javascript:add('♨')">♨</button>
<button type="button" class="scemo_add" onclick="javascript:add('™')">™</button>
<button type="button" class="scemo_add" onclick="javascript:add('℡')">℡</button>
<button type="button" class="scemo_add" onclick="javascript:add('∑')">∑</button>
<button type="button" class="scemo_add" onclick="javascript:add('∏')">∏</button>
<button type="button" class="scemo_add" onclick="javascript:add('♬')">♬</button>
<button type="button" class="scemo_add" onclick="javascript:add('♪')">♪</button>
<button type="button" class="scemo_add" onclick="javascript:add('♩')">♩</button>
<button type="button" class="scemo_add" onclick="javascript:add('♭')">♭</button>
<div class="list_closer"><button type="button" class="list_closer_btn">특수기호닫기</button></div>
</div>
</div>
<div id="write_emo" class="write_scemo">
<button type="button" id="scemo_emo" class="scemo_btn">이모티콘</button>
<div class="scemo_list scemo_emo">
<div class="list_closer"><button type="button" class="list_closer_btn">이모티콘닫기</button></div>
<button type="button" class="scemo_add" onclick="javascript:add('*^^*')">*^^*</button>
<button type="button" class="scemo_add" onclick="javascript:add('♡.♡')">♡.♡</button>
<button type="button" class="scemo_add" onclick="javascript:add('@_@')">@_@</button>
<button type="button" class="scemo_add" onclick="javascript:add('☞_☜')">☞_☜</button>
<button type="button" class="scemo_add" onclick="javascript:add('ㅠ ㅠ')">ㅠ ㅠ</button>
<button type="button" class="scemo_add" onclick="javascript:add('Θ.Θ')">Θ.Θ</button>
<button type="button" class="scemo_add" onclick="javascript:add('^_~♥')">^_~♥</button>
<button type="button" class="scemo_add" onclick="javascript:add('~o~')">~o~</button>
<button type="button" class="scemo_add" onclick="javascript:add('★.★')">★.★</button>
<button type="button" class="scemo_add" onclick="javascript:add('(!.!)')">(!.!)</button>
<button type="button" class="scemo_add" onclick="javascript:add('⊙.⊙')">⊙.⊙</button>
<button type="button" class="scemo_add" onclick="javascript:add('q.p')">q.p</button>
<button type="button" class="scemo_add emo_long" onclick="javascript:add('↖(^-^)↗')">↖(^-^)↗</button>
<button type="button" class="scemo_add emo_long" onclick="javascript:add('(*^-^*)')">(*^-^*)</button>
<button type="button" class="scemo_add emo_long" onclick="javascript:add('d(^-^)b')">d(^-^)b</button>
<div class="list_closer"><button type="button" class="list_closer_btn">이모티콘닫기</button></div>
</div>
</div>
</div>
<div class="win_btn">
<input type="submit" value="전송" class="btn_submit">
<button type="button" onclick="window.close();">창닫기</button>
</div>
</form>
</div>
<?php if( count($emoticon_group) ){ //회원에게 공개된 이모티콘 그룹이 있다면 ?>
<div id="send_emo">
<h2>이모티콘 목록</h2>
<form name="emoticon_form">
<label for="emo_sel" class="sound_only">이모티콘 그룹</label>
<select name="fg_no" id="emo_sel">
<option value="" <?php echo $fg_no?'':'selected'?>>전체</option>
<?php for($i=0; $i<count($emoticon_group); $i++) {?>
<option value="<?php echo $emoticon_group[$i]['fg_no']?>"<?php echo ($fg_no==$emoticon_group[$i]['fg_no'])?'selected':''?>><?php echo $emoticon_group[$i]['fg_name']?> (<?php echo number_format($emoticon_group[$i]['fg_count'])?>)</option>
<?php } ?>
</select>
</form>
<ul class="emo_list">
</ul>
<nav class="pg_wrap">
<span class="pg" id="emoticon_pg"></span>
</nav>
<form name="emoticon_search" id="emoticon_search">
<input type="hidden" name="page" id="hidden_page" >
</form>
</div>
<?php } ?>
</div>
<script>
function sms_error(obj, err) {
alert(err);
obj.value = '';
}
function smssend_submit(f)
{
if (!f.mh_message.value)
{
alert('보내실 문자를 입력하십시오.');
f.mh_message.focus();
return false;
}
if (!f.mh_reply.value)
{
alert('발신 번호를 입력하십시오.\n\n발신 번호는 회원정보의 휴대폰번호입니다.');
return false;
}
return true;
//f.submit();
//win.focus();
}
function booking_show()
{
if (document.getElementById('booking_flag').checked) {
document.getElementById('mh_by').disabled = false;
document.getElementById('mh_bm').disabled = false;
document.getElementById('mh_bd').disabled = false;
document.getElementById('mh_bh').disabled = false;
document.getElementById('mh_bi').disabled = false;
} else {
document.getElementById('mh_by').disabled = true;
document.getElementById('mh_bm').disabled = true;
document.getElementById('mh_bd').disabled = true;
document.getElementById('mh_bh').disabled = true;
document.getElementById('mh_bi').disabled = true;
}
}
function add(str) {
var conts = document.getElementById('mh_message');
var bytes = document.getElementById('sms_bytes');
conts.focus();
conts.value+=str;
byte_check('mh_message', 'sms_bytes');
return;
}
function byte_check(mh_message, sms_bytes)
{
var conts = document.getElementById(mh_message);
var bytes = document.getElementById(sms_bytes);
var i = 0;
var cnt = 0;
var exceed = 0;
var ch = '';
for (i=0; i<conts.value.length; i++)
{
ch = conts.value.charAt(i);
if (escape(ch).length > 4) {
cnt += 2;
} else {
cnt += 1;
}
}
bytes.innerHTML = cnt;
if (cnt > 80)
{
exceed = cnt - 80;
alert('메시지 내용은 80바이트를 넘을수 없습니다.\n\n작성하신 메세지 내용은 '+ exceed +'byte가 초과되었습니다.\n\n초과된 부분은 자동으로 삭제됩니다.');
var tcnt = 0;
var xcnt = 0;
var tmp = conts.value;
for (i=0; i<tmp.length; i++)
{
ch = tmp.charAt(i);
if (escape(ch).length > 4) {
tcnt += 2;
} else {
tcnt += 1;
}
if (tcnt > 80) {
tmp = tmp.substring(0,i);
break;
} else {
xcnt = tcnt;
}
}
conts.value = tmp;
bytes.innerHTML = xcnt;
return;
}
}
byte_check('mh_message', 'sms_bytes');
</script>
<script src="<?php echo G5_JS_URL?>/jquery.sms_paging.js"></script>
<script>
var emoticon_list = {
go : function(fo_no){
var wr_message = document.getElementById('mh_message');
//wr_message.focus();
wr_message.value = document.getElementById('fo_contents_' + fo_no).value;
byte_check('mh_message', 'sms_bytes');
}
};
(function($){
$(".box_txt").bind("focus keydown", function(){
$("#wr_message_lbl").hide();
});
var $search_form = $("form#emoticon_search");
emoticon_list.fn_paging = function( hash_val,total_page ){
$('#emoticon_pg').paging({
current:hash_val ? hash_val : 1,
max:total_page == 0 || total_page ? total_page : 45,
length : 5,
liitem : 'span',
format:'{0}',
next:'next',
prev:'prev',
first:'&lt;&lt;',last:'&gt;&gt;',
href:'#',
itemCurrent:'pg_current',
itemClass:'pg_page',
appendhtml:'<span class="sound_only">페이지</span>',
onclick:function(e,page){
e.preventDefault();
$("#hidden_page").val( page );
var params = $($search_form).serialize();
emoticon_list.select_page( params, "json" );
}
});
}
emoticon_list.loading = function( el, src ){
if( !el || !src) return;
$(el).append("<span class='tmp_loading'><img src='"+src+"' title='loading...' ></span>");
}
emoticon_list.loadingEnd = function( el ){
$(".tmp_loading", $(el)).remove();
}
emoticon_list.select_page = function( params, type ){
if( !type ){
type = "json";
}
emoticon_list.loading(".emo_list", "<?php echo $sms5_skin_url?>/img/ajax-loader.gif" ); //로딩 이미지 보여줌
$.ajax({
url: "./ajax.sms_emoticon.php",
cache:false,
timeout : 30000,
dataType:type,
data:params,
success: function(HttpRequest) {
if( type == "json" ){
if (HttpRequest.error) {
alert(HttpRequest.error);
return false;
} else {
var $emoticon_box = $(".emo_list");
var list_text = "";
$.each( HttpRequest.list_text , function(num) {
var list_data = HttpRequest.list_text[num];
list_text = list_text + "<li class=\"screen_list\"><div class=\"sms5_box\"><span class=\"box_ico\"></span><textarea class=\"sms_textarea box_txt box_square\" readonly onclick=\"emoticon_list.go("+list_data.fo_no+")\">"+list_data.fo_content+"</textarea><textarea id=\"fo_contents_"+list_data.fo_no+"\" style=\"display:none; width:0; height:0\">"+list_data.fo_content+"</textarea><strong class=\"emo_tit\">"+list_data.fo_name+"</strong></div></li>";
});
if( !list_text ){
list_text = "<li>데이터가 없습니다.</li>";
}
$emoticon_box.html( list_text );
emoticon_list.fn_paging( HttpRequest.page, HttpRequest.total_page );
$("#hidden_page").val( HttpRequest.page );
}
}
emoticon_list.loadingEnd(".emo_list"); //로딩 이미지 지움
}
});
}
$("#emo_sel").bind("change", function(e){
var params = { fg_no : $(this).val() };
$search_form[0].reset();
$("#hidden_fg_no").val( $(this).val() );
emoticon_list.select_page( params, "json" );
});
$search_form.submit(function(e){
e.preventDefault();
var $form = $(this),
params = $(this).serialize();
emoticon_list.select_page( params, "json" );
});
if( $("#emo_sel").length ){
$("#emo_sel").trigger("change");
}
$(".scemo_btn").click(function(){
var scemoid = $(this).attr("id");
$(this).hide();
$(".scemo_list").hide();
$("."+scemoid).show();
});
$(".list_closer_btn").click(function(){
$(".scemo_btn").show();
$(".scemo_list").hide();
});
})(jQuery);
</script>
+307 -169
View File
@@ -7,26 +7,13 @@ 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 = "<select id=\"$id\" name=\"$name\" $event>\n";
for ($i=0; $i<count($skins); $i++) {
if ($i == 0) $str .= "<option value=\"\">선택</option>";
$str .= option_selected($skins[$i], $selected);
}
$str .= "</select>";
return $str;
}
// 한페이지에 보여줄 행, 현재페이지, 총페이지수, URL
function sms5_sub_paging($write_pages, $cur_page, $total_page, $url, $add="", $starget="")
{
if( $starget ){
$url = preg_replace('#&amp;'.$starget.'=[0-9]*#', '', $url) . '&amp;'.$starget.'=';
}
$str = '';
if ($cur_page > 1) {
$str .= '<a href="'.$url.'1'.$add.'" class="pg_page pg_start">처음</a>'.PHP_EOL;
@@ -154,180 +141,331 @@ if ( ! function_exists('is_ie')) {
* 접속, 발송, URL발송, 결과등의 실질적으로 쓰이는 모든 부분이 포함되어 있다.
*/
class SMS5 extends SMS {
var $Log = array();
if($config['cf_sms_type'] == 'LMS') {
include_once(G5_LIB_PATH.'/icode.lms.lib.php');
function SMS_con($sms_server,$sms_id,$sms_pw,$port) {
$this->ID=$sms_id; // 계약 후 지정
$this->PWD=$sms_pw; // 계약 후 지정
$this->SMS_Server=$sms_server;
$this->SMS_Port=$port;
$this->ID = spacing($this->ID,10);
$this->PWD = spacing($this->PWD,10);
}
class SMS5 extends LMS {
var $icode_id;
var $icode_pw;
var $socket_host;
var $socket_port;
var $socket_portcode;
var $send_type;
var $Data = array();
var $Result = array();
var $Log = array();
/**
* 발송번호의 값이 정확한 값인지 확인합니다.
*
* @param strDest 발송번호 배열입니다.
* nCount 배열의 크기입니다.
* @return 처리결과입니다.
*/
function CheckCommonTypeDest($strDest, $nCount) {
for ($i=0; $i<$nCount; $i++) {
$hp_number = preg_replace("/[^0-9]/","",$strDest[$i]['bk_hp']);
if (strlen($hp_number)<10 || strlen($hp_number)>11) return "휴대폰 번호가 틀렸습니다";
$CID=substr($hp_number,0,3);
if ( preg_match("/[^0-9]/",$CID) || ($CID!='010' && $CID!='011' && $CID!='016' && $CID!='017' && $CID!='018' && $CID!='019') ) return "휴대폰 앞자리 번호가 잘못되었습니다";
// SMS 서버 접속
function SMS_con($host, $id, $pw, $portcode) {
$this->socket_host = $host;
$this->socket_portcode = $portcode;
$this->icode_id = FillSpace($id, 10);
$this->icode_pw = FillSpace($pw, 10);
}
}
/**
* 회신번호의 값이 정확한 값인지 확인합니다.
*
* @param strDest 회신번호입니다.
* @return 처리결과입니다.
*/
function CheckCommonTypeCallBack($strCallBack) {
if (preg_match("/[^0-9]/", $strCallBack)) return "회신 전화번호가 잘못되었습니다";
}
/**
* 예약날짜의 값이 정확한 값인지 확인합니다.
*
* @param text 원하는 문자열입니다.
* size 원하는 길이입니다.
* @return 처리결과입니다.
*/
function CheckCommonTypeDate($strDate) {
$strDate=preg_replace("/[^0-9]/","",$strDate);
if ($strDate) {
if (!checkdate(substr($strDate,4,2),substr($strDate,6,2),substr($rsvTime,0,4))) return "예약날짜가 잘못되었습니다";
if (substr($strDate,8,2)>23 || substr($strDate,10,2)>59) return "예약시간이 잘못되었습니다";
function Init() {
$this->Data = ""; // 발송하기 위한 패킷내용이 배열로 들어간다.
$this->Result = ""; // 발송결과값이 배열로 들어간다.
}
}
function Add($strDest, $strCallBack, $strCaller, $strSubject, $strURL, $strData, $strDate="", $nCount) {
// EUC-KR로 변환
$strCaller = iconv_euckr($strCaller);
$strSubject = iconv_euckr($strSubject);
$strData = iconv_euckr($strData);
/**
* URL콜백용으로 메세지 크기를 수정합니다.
*
* @param url URL 내용입니다.
* msg 결과메시지입니다.
* desk 문자내용입니다.
*/
function CheckCallCenter($url, $dest, $data) {
switch (substr($dest,0,3)) {
case '010': //20바이트
return cut_char($data,20);
break;
case '011': //80바이트
return cut_char($data,80);
break;
case '016': // 80바이트
return cut_char($data,80);
break;
case '017': // URL 포함 80바이트
return cut_char($data,80 - strlen($url));
break;
case '018': // 20바이트
return cut_char($data,20);
break;
case '019': // 20바이트
return cut_char($data,20);
break;
default:
return cut_char($data,80);
break;
}
}
function Add($strDest, $strCallBack, $strCaller, $strURL, $strMessage, $strDate="", $nCount) {
global $g5;
// 문자 타입별 Port 설정.
$sendType = strlen($strData) > 90 ? 1 : 0; // 0: SMS / 1: LMS
$Error = $this->CheckCommonTypeDest($strDest, $nCount);
$Error = $this->CheckCommonTypeCallBack($strCallBack);
$Error = $this->CheckCommonTypeDate($strDate);
/* 개발 완료 후 아래 포트를 rand 함수를 이용하는 라인으로 변경 바랍니다.*/
$strCallBack = spacing($strCallBack,11);
$strCaller = spacing($strCaller,10);
$strDate = spacing($strDate,12);
for ($i=0; $i<$nCount; $i++) {
$hp_number = spacing($strDest[$i]['bk_hp'],11);
$strData = $strMessage;
if( !empty($strDest[$i]['bk_name']) ){
$strData = str_replace("{이름}", $strDest[$i]['bk_name'], $strData);
// 충전식
if ($this->socket_portcode == 1) {
if($sendType && $sendType == 1) {
//$this->socket_port = 8200; // LMS
$this->socket_port=(int)rand(8200,8201); // LMS
} else {
//$this->socket_port = 6295; // SMS
$this->socket_port=(int)rand(6295,6297); // SMS
}
}
// 아이코드에서는 문자에 utf-8 인코딩 형식을 아직 지원하지 않는다.
$strData = iconv('utf-8', "euc-kr", stripslashes($strData));
if (!$strURL) {
$strData = spacing(cut_char($strData,80),80);
$this->Data[$i] = '01144 '.$this->ID.$this->PWD.$hp_number.$strCallBack.$strCaller.$strDate.$strData;
} else {
$strURL = spacing($strURL,50);
$strData = spacing($this->CheckCallCenter($strURL, $hp_number, $strData),80);
$this->Data[$i] = '05173 '.$this->ID.$this->PWD.$hp_number.$strCallBack.$strURL.$strDate.$strData;
}
}
return true; // 수정대기
}
function Send() {
global $g5;
$count = 1;
if ($g5['sms5_demo_send']) {
foreach($this->Data as $puts) {
if (rand(0,10)) {
$phone = substr($puts,26,11);
$code = '47022497 ';
// 정액제
else {
if($sendType && $sendType == 1) {
//$this->socket_port = 8300; // LMS
$this->socket_port=(int)rand(8300,8301); // LMS
} else {
$phone = substr($puts,26,11);
$code = 'Error(02)';
//$this->socket_port = 6291; // SMS
$this->socket_port=(int)rand(6291,6293); // SMS
}
$this->Result[] = "$phone:$code";
$this->Log[] = $puts;
}
$strCallBack = FillSpace($strCallBack, 11); // 회신번호
$strDate = FillSpace($strDate, 12); // 즉시(12byte 공백), 예약전송(YmdHi)
if ($sendType && $sendType == 1) {
/** LMS 제목 **/
/*
제목필드의 값이 없을 경우 단말기 기종및 설정에 따라 표기 방법이 다름
1.설정에서 제목필드보기 설정 Disable -> 제목필드값을 넣어도 미표기
2.설정에서 제목필드보기 설정 Enable -> 제목을 넣지 않을 경우 제목없음으로 자동표시
제목의 첫글자에 "<",">", 개행문자가 있을경우 단말기종류 및 통신사에 따라 메세지 전송실패 -> 글자를 체크하거나 취환처리요망
*/
$strSubject = str_replace("\r\n", " ", $strSubject);
$strSubject = str_replace("<", "[", $strSubject);
$strSubject = str_replace(">", "]", $strSubject);
$strSubject = FillSpace($strSubject,30);
$strData = FillSpace(CutChar($strData,1500),1500);
} else if (!$strURL) {
$strData = FillSpace(CutChar($strData,90),90);
$strCaller = FillSpace($strCaller,10);
} else {
$strURL = FillSpace($strURL,50);
}
$Error = CheckCommonTypeDest($strDest, $nCount);
$Error = is_vaild_callback($strCallBack);
$Error = CheckCommonTypeDate($strDate);
for ($i=0; $i<$nCount; $i++) {
$strDest[$i] = FillSpace($strDest[$i],11);
if ($sendType && $sendType == 1) {
$this->Data[$i] = '01144 '.$this->icode_id.$this->icode_pw.$strDest[$i].$strCallBack.$strSubject.$strDate.$strData;
} else if (!$strURL) {
$this->Data[$i] = '01144 '.$this->icode_id.$this->icode_pw.$strDest[$i].$strCallBack.$strCaller.$strDate.$strData;
} else {
$strData = FillSpace(CheckCallCenter($strURL, $strDest[$i], $strData),80);
$this->Data[$i] = '05173 '.$this->icode_id.$this->icode_pw.$strDest[$i].$strCallBack.$strURL.$strDate.$strData;
}
}
return true;
}
function Send() {
global $g5;
if ($g5['sms5_demo_send']) {
foreach($this->Data as $puts) {
if (rand(0,10)) {
$phone = substr($puts,26,11);
$code = '47022497 ';
} else {
$phone = substr($puts,26,11);
$code = 'Error(02)';
}
$this->Result[] = "$phone:$code";
$this->Log[] = $puts;
}
$this->Data = "";
return true;
exit;
}
$fsocket = fsockopen($this->socket_host,$this->socket_port, $errno, $errstr, 2);
if (!$fsocket) return false;
set_time_limit(300);
foreach($this->Data as $puts) {
fputs($fsocket, $puts);
while(!$gets) { $gets = fgets($fsocket,30); }
$dest = substr($puts,26,11);
if (substr($gets,0,19) == "0223 00".$dest) {
$this->Result[] = $dest.":".substr($gets,19,10);
$this->Log[] = $puts;
} else {
$this->Result[$dest] = $dest.":Error(".substr($gets,6,2).")";
$this->Log[] = $puts;
}
$gets = "";
}
fclose($fsocket);
$this->Data = "";
return true;
exit;
}
}
} else {
include_once(G5_LIB_PATH.'/icode.sms.lib.php');
class SMS5 extends SMS {
var $Log = array();
function SMS_con($sms_server,$sms_id,$sms_pw,$port) {
$this->ID=$sms_id; // 계약 후 지정
$this->PWD=$sms_pw; // 계약 후 지정
$this->SMS_Server=$sms_server;
$this->SMS_Port=$port;
$this->ID = spacing($this->ID,10);
$this->PWD = spacing($this->PWD,10);
}
$fsocket=fsockopen($this->SMS_Server,$this->SMS_Port);
if (!$fsocket) return false;
set_time_limit(300);
/**
* 발송번호의 값이 정확한 값인지 확인합니다.
*
* @param strDest 발송번호 배열입니다.
* nCount 배열의 크기입니다.
* @return 처리결과입니다.
*/
function CheckCommonTypeDest($strDest, $nCount) {
for ($i=0; $i<$nCount; $i++) {
$hp_number = preg_replace("/[^0-9]/","",$strDest[$i]['bk_hp']);
if (strlen($hp_number)<10 || strlen($hp_number)>11) return "휴대폰 번호가 틀렸습니다";
## php4.3.10일경우
## zend 최신버전으로 업해주세요..
## 또는 69번째 줄을 $this->Data as $tmp => $puts 로 변경해 주세요.
foreach($this->Data as $puts) {
$dest = substr($puts,26,11);
fputs($fsocket, $puts);
while(!$gets) {
$gets = fgets($fsocket,30);
}
if (substr($gets,0,19) == "0223 00".$dest) {
$this->Result[] = $dest.":".substr($gets,19,10);
$this->Log[] = $puts;
} else {
$this->Result[$dest] = $dest.":Error(".substr($gets,6,2).")";
$this->Log[] = $puts;
$CID=substr($hp_number,0,3);
if ( preg_match("/[^0-9]/",$CID) || ($CID!='010' && $CID!='011' && $CID!='016' && $CID!='017' && $CID!='018' && $CID!='019') ) return "휴대폰 앞자리 번호가 잘못되었습니다";
}
$gets = "";
}
// 1천건씩 전송 후 5초 쉼
if ($count++%1000 == 0) sleep(5);
}
fclose($fsocket);
$this->Data = "";
return true;
}
/**
* 회신번호의 값이 정확한 값인지 확인합니다.
*
* @param strDest 회신번호입니다.
* @return 처리결과입니다.
*/
function CheckCommonTypeCallBack($strCallBack) {
if (preg_match("/[^0-9]/", $strCallBack)) return "회신 전화번호가 잘못되었습니다";
}
/**
* 예약날짜의 값이 정확한 값인지 확인합니다.
*
* @param text 원하는 문자열입니다.
* size 원하는 길이입니다.
* @return 처리결과입니다.
*/
function CheckCommonTypeDate($strDate) {
$strDate=preg_replace("/[^0-9]/","",$strDate);
if ($strDate) {
if (!checkdate(substr($strDate,4,2),substr($strDate,6,2),substr($rsvTime,0,4))) return "예약날짜가 잘못되었습니다";
if (substr($strDate,8,2)>23 || substr($strDate,10,2)>59) return "예약시간이 잘못되었습니다";
}
}
/**
* URL콜백용으로 메세지 크기를 수정합니다.
*
* @param url URL 내용입니다.
* msg 결과메시지입니다.
* desk 문자내용입니다.
*/
function CheckCallCenter($url, $dest, $data) {
switch (substr($dest,0,3)) {
case '010': //20바이트
return cut_char($data,20);
break;
case '011': //80바이트
return cut_char($data,80);
break;
case '016': // 80바이트
return cut_char($data,80);
break;
case '017': // URL 포함 80바이트
return cut_char($data,80 - strlen($url));
break;
case '018': // 20바이트
return cut_char($data,20);
break;
case '019': // 20바이트
return cut_char($data,20);
break;
default:
return cut_char($data,80);
break;
}
}
function Add($strDest, $strCallBack, $strCaller, $strURL, $strMessage, $strDate="", $nCount) {
global $g5;
$Error = $this->CheckCommonTypeDest($strDest, $nCount);
$Error = $this->CheckCommonTypeCallBack($strCallBack);
$Error = $this->CheckCommonTypeDate($strDate);
$strCallBack = spacing($strCallBack,11);
$strCaller = spacing($strCaller,10);
$strDate = spacing($strDate,12);
for ($i=0; $i<$nCount; $i++) {
$hp_number = spacing($strDest[$i]['bk_hp'],11);
$strData = $strMessage;
if( !empty($strDest[$i]['bk_name']) ){
$strData = str_replace("{이름}", $strDest[$i]['bk_name'], $strData);
}
// 아이코드에서는 문자에 utf-8 인코딩 형식을 아직 지원하지 않는다.
$strData = iconv('utf-8', "euc-kr", stripslashes($strData));
if (!$strURL) {
$strData = spacing(cut_char($strData,80),80);
$this->Data[$i] = '01144 '.$this->ID.$this->PWD.$hp_number.$strCallBack.$strCaller.$strDate.$strData;
} else {
$strURL = spacing($strURL,50);
$strData = spacing($this->CheckCallCenter($strURL, $hp_number, $strData),80);
$this->Data[$i] = '05173 '.$this->ID.$this->PWD.$hp_number.$strCallBack.$strURL.$strDate.$strData;
}
}
return true; // 수정대기
}
function Send() {
global $g5;
$count = 1;
if ($g5['sms5_demo_send']) {
foreach($this->Data as $puts) {
if (rand(0,10)) {
$phone = substr($puts,26,11);
$code = '47022497 ';
} else {
$phone = substr($puts,26,11);
$code = 'Error(02)';
}
$this->Result[] = "$phone:$code";
$this->Log[] = $puts;
}
$this->Data = "";
return true;
exit;
}
$fsocket=fsockopen($this->SMS_Server,$this->SMS_Port);
if (!$fsocket) return false;
set_time_limit(300);
## php4.3.10일경우
## zend 최신버전으로 업해주세요..
## 또는 69번째 줄을 $this->Data as $tmp => $puts 로 변경해 주세요.
foreach($this->Data as $puts) {
$dest = substr($puts,26,11);
fputs($fsocket, $puts);
while(!$gets) {
$gets = fgets($fsocket,30);
}
if (substr($gets,0,19) == "0223 00".$dest) {
$this->Result[] = $dest.":".substr($gets,19,10);
$this->Log[] = $puts;
} else {
$this->Result[$dest] = $dest.":Error(".substr($gets,6,2).")";
$this->Log[] = $puts;
}
$gets = "";
// 1천건씩 전송 후 5초 쉼
if ($count++%1000 == 0) sleep(5);
}
fclose($fsocket);
$this->Data = "";
return true;
}
}
}
?>
-72
View File
@@ -1,72 +0,0 @@
<?php
if (!defined('_GNUBOARD_')) exit;
if( !$sms5['bo_skin'] ){
$sms5['bo_skin'] = "basic";
}
$err = null;
if (!$mb_id){
$err = "받는회원 아이디가 넘어오지 않았습니다.";
alert_close($err);
}
if (!$sms5['cf_member']){
$err = "문자전송이 허용되지 않았습니다.\\n\\n사이트 관리자에게 문의하여 주십시오.";
alert_close($err);
}
if (!$err and !$is_member){
$err = "로그인 해주세요.";
alert_close($err);
}
if (!$err and $member['mb_level'] < $sms5['cf_level']){
$err = "회원 {$sms5['cf_level']} 레벨 이상만 문자전송이 가능합니다.";
alert_close($err);
}
// 오늘 문자를 보낸 총 건수
$row = sql_fetch(" select count(*) as cnt from {$g5['sms5_member_history_table']} where mb_id='{$member['mb_id']}' and date_format(mh_datetime, '%Y-%m-%d') = '".G5_TIME_YMD."' ");
$total = $row['cnt'];
// 건수 제한
if (!$err and $sms5['cf_day_count'] > 0 && $is_admin != 'super') {
if ($total >= $sms5['cf_day_count']) {
$err = "하루에 보낼수 있는 문자갯수(".number_format($sms5['cf_day_count'])." 건)를 초과하였습니다.";
alert_close($err);
}
}
// 포인트 검사
if (!$err and $sms5['cf_point'] > 0 && $is_admin != 'super') {
if ($sms5['cf_point'] > $member['mb_point']) {
$err = "보유하신 포인트(".number_format($member['mb_point'])." 포인트)가 없거나 모자라서\\n\\n문자전송(".number_format($sms5['cf_point'])." 포인트)이 불가합니다.\\n\\n포인트를 적립하신 후 다시 시도 해 주십시오.";
alert_close($err);
}
}
// 특정회원에게 문자 전송
if ($mb_id) {
$mb = get_member($mb_id);
if (!$mb['mb_hp']) alert_close("회원 휴대폰번호가 없습니다.");
if (!$mb['mb_open']) alert_close("정보를 공개하지 않았습니다.");
if (!$mb['mb_sms']) alert_close("SMS 수신여부가 비활성화 되어 있습니다.");
//$hp = $mb['mb_hp'];
}
$g5['title'] = "문자전송";
$token = get_token();
$emoticon_group = array();
$qry = sql_query("select * from {$g5['sms5_form_group_table']} where fg_member = 1 order by fg_name");
while ($res = sql_fetch_array($qry)) array_push($emoticon_group, $res);
$action_url = "./write_update.php";
if( G5_IS_MOBILE ){
$write_skin_page = "/write_mobile.skin.php";
} else {
$write_skin_page = "/write.skin.php";
}
include_once ($sms5_skin_path.$write_skin_page);
echo PHP_EOL.'<!-- skin : '.$sms5['bo_skin'].' -->'.PHP_EOL;
?>
-162
View File
@@ -1,162 +0,0 @@
<?php
include_once("./_common.php");
$g5['title'] = "문자전송중";
if (!($token && get_session("ss_token") == $token))
die("올바른 방법으로 사용해 주십시오.");
if (!$sms5['cf_member'])
die("문자전송이 허용되지 않았습니다. 사이트 관리자에게 문의하여 주십시오.");
if (!$is_member)
die("로그인 해주세요.");
if ($member['mb_level'] < $sms5['cf_level'])
alert("회원 {$sms5['cf_level']}레벨 이상만 문자전송이 가능합니다.");
$mh_reply = preg_replace('#[^0-9\-]#', '', trim($mh_reply));
$mh_message = clean_xss_tags(trim($mh_message));
if (!$mh_reply)
alert('보내는 번호를 입력해주세요.');
if (!$mh_message)
alert('메세지를 입력해주세요.');
if ($is_admin != 'super')
{
$mh_reply = get_hp($mh_reply, 0);
if (!$mh_reply)
alert("보내는 번호가 올바르지 않습니다.");
}
else
{
$mh_reply = str_replace("-", "", $mh_reply);;
if (!check_string($mh_reply, G5_NUMERIC))
alert("보내는 번호가 올바르지 않습니다.");
}
$mh_hp = explode(',', $mh_hp);
if ($mb_id) {
$mb = get_member($mb_id);
if (!$mb['mb_sms'] || !$mb['mb_open']) {
alert("정보를 공개하지 않았습니다.");
}
if( $mb['mb_hp'] ){
array_push( $mh_hp, $mb['mb_hp'] );
}
}
if (!count($mh_hp))
alert('받는 번호를 입력해주세요.');
// 핸드폰 번호만 걸러낸다.
$tmp = array();
for ($i=0; $i<count($mh_hp); $i++)
{
$hp = trim($mh_hp[$i]);
$hp = get_hp($hp);
if ($hp)
$tmp[]['bk_hp'] = get_hp($hp, 0);
}
$mh_hp = $tmp;
$total = count($mh_hp);
// 건수 제한
if ($sms5['cf_day_count'] > 0 && $is_admin != 'super') {
$row = sql_fetch(" select count(*) as cnt from {$g5['sms5_member_history_table']} where mb_id='{$member['mb_id']}' and date_format(mh_datetime, '%Y-%m-%d') = '".G5_TIME_YMD."' ");
if ($row['cnt'] + $total > $sms5['cf_day_count']) {
alert("하루에 보낼수 있는 문자갯수(".number_format($sms5['cf_day_count']).")를 초과하였습니다.");
}
}
// 포인트 검사
if ($sms5['cf_point'] > 0 && $is_admin != 'super') {
$minus_point = $sms5['cf_point'] * $total;
if ($minus_point > $member['mb_point'])
alert("보유하신 포인트(".number_format($member['mb_point']).")가 없거나 모자라서 문자전송(".number_format($minus_point).")이 불가합니다.\\n\\n포인트를 적립하신 후 다시 시도 해 주십시오.");
} else
$minus_point = 0;
// 예약전송
if ($mh_by && $mh_bm && $mh_bd && $mh_bh && $mh_bi) {
$mh_booking = "$mh_by-$mh_bm-$mh_bd $mh_bh:$mh_bi:00";
$booking = $mh_by.$mh_bm.$mh_bd.$mh_bh.$mh_bi;
} else {
$mh_booking = '';
$booking = '';
}
$SMS = new SMS5;
$SMS->SMS_con($config['cf_icode_server_ip'], $config['cf_icode_id'], $config['cf_icode_pw'], $config['cf_icode_server_port']);
$mh_message = conv_unescape_nl($mh_message);
$result = $SMS->Add($mh_hp, $mh_reply, '', '', $mh_message, $booking, $total);
$is_success = null;
if ($result)
{
$result = $SMS->Send();
if ($result) //SMS 서버에 접속했습니다.
{
foreach ($SMS->Result as $result)
{
list($hp, $code) = explode(":", $result);
if (substr($code,0,5) == "Error")
{
$is_success = false;
switch (substr($code,6,2)) {
case '02': // "02:형식오류"
$mh_log = "형식이 잘못되어 전송이 실패하였습니다.";
break;
case '23': // "23:인증실패,데이터오류,전송날짜오류"
$mh_log = "데이터를 다시 확인해 주시기바랍니다.";
break;
case '97': // "97:잔여코인부족"
$mh_log = "잔여코인이 부족합니다.";
break;
case '98': // "98:사용기간만료"
$mh_log = "사용기간이 만료되었습니다.";
break;
case '99': // "99:인증실패"
$mh_log = "인증 받지 못하였습니다. 계정을 다시 확인해 주세요.";
break;
default: // "미 확인 오류"
$mh_log = "알 수 없는 오류로 전송이 실패하었습니다.";
break;
}
}
else
{
$is_success = true;
$mh_log = "문자전송:".get_hp($hp, 1);
}
$hp = get_hp($hp, 1);
$log = array_shift($SMS->Log);
sql_query("insert into {$g5['sms5_member_history_table']} set mb_id='{$member['mb_id']}', mh_reply='$mh_reply', mh_hp='$hp', mh_datetime='".G5_TIME_YMDHIS."', mh_booking='$mh_booking', mh_log='$mh_log', mh_ip='".$_SERVER['REMOTE_ADDR']."'");
if ($is_admin == 'super')
$sms5['cf_point'] = 0;
if ($is_success)
insert_point($member['mb_id'], (-1) * $sms5['cf_point'], "$mh_log");
}
$SMS->Init(); // 보관하고 있던 결과값을 지웁니다.
}
else alert("에러: SMS 서버와 통신이 불안정합니다.");
}
else alert("에러: SMS 데이터 입력도중 에러가 발생하였습니다.");
alert_close("$total 건의 문자메세지 전송을 완료하였습니다.");
?>
+1
View File
@@ -111,6 +111,7 @@ add_stylesheet('<link rel="stylesheet" href="'.$board_skin_url.'/style.css">', 0
<input type="text" name="wr_subject" value="<?php echo $subject ?>" id="wr_subject" required class="frm_input required" size="50" maxlength="255">
<?php if ($is_member) { // 임시 저장된 글 기능 ?>
<script src="<?php echo G5_JS_URL; ?>/autosave.js"></script>
<?php if($editor_content_js) echo $editor_content_js; ?>
<button type="button" id="btn_autosave" class="btn_frmline">임시 저장된 글 (<span id="autosave_count"><?php echo $autosave_count; ?></span>)</button>
<div id="autosave_pop">
<strong>임시 저장된 글 목록</strong>
+1
View File
@@ -111,6 +111,7 @@ add_stylesheet('<link rel="stylesheet" href="'.$board_skin_url.'/style.css">', 0
<input type="text" name="wr_subject" value="<?php echo $subject ?>" id="wr_subject" required class="frm_input required" size="50" maxlength="255">
<?php if ($is_member) { // 임시 저장된 글 기능 ?>
<script src="<?php echo G5_JS_URL; ?>/autosave.js"></script>
<?php if($editor_content_js) echo $editor_content_js; ?>
<button type="button" id="btn_autosave" class="btn_frmline">임시 저장된 글 (<span id="autosave_count"><?php echo $autosave_count; ?></span>)</button>
<div id="autosave_pop">
<strong>임시 저장된 글 목록</strong>
+1 -1
View File
@@ -14,7 +14,7 @@ add_stylesheet('<link rel="stylesheet" href="'.$member_skin_url.'/style.css">',
<input type="hidden" name="attach" value="2">
<input type="hidden" name="token" value="<?php echo $token ?>">
<?php if ($is_member) { // 회원이면 ?>
<input type="hidden" name="fnick" value="<?php echo $member['mb_nick'] ?>">
<input type="hidden" name="fnick" value="<?php echo get_text($member['mb_nick']); ?>">
<input type="hidden" name="fmail" value="<?php echo $member['mb_email'] ?>">
<?php } ?>
+13 -13
View File
@@ -22,8 +22,8 @@ add_stylesheet('<link rel="stylesheet" href="'.$member_skin_url.'/style.css">',
<input type="hidden" name="cert_no" value="">
<?php if (isset($member['mb_sex'])) { ?><input type="hidden" name="mb_sex" value="<?php echo $member['mb_sex'] ?>"><?php } ?>
<?php if (isset($member['mb_nick_date']) && $member['mb_nick_date'] > date("Y-m-d", G5_SERVER_TIME - ($config['cf_nick_modify'] * 86400))) { // 닉네임수정일이 지나지 않았다면 ?>
<input type="hidden" name="mb_nick_default" value="<?php echo $member['mb_nick'] ?>">
<input type="hidden" name="mb_nick" value="<?php echo $member['mb_nick'] ?>">
<input type="hidden" name="mb_nick_default" value="<?php echo get_text($member['mb_nick']) ?>">
<input type="hidden" name="mb_nick" value="<?php echo get_text($member['mb_nick']) ?>">
<?php } ?>
<div class="tbl_frm01 tbl_wrap">
@@ -60,7 +60,7 @@ add_stylesheet('<link rel="stylesheet" href="'.$member_skin_url.'/style.css">',
<?php if ($config['cf_cert_use']) { ?>
<span class="frm_info">아이핀 본인확인 후에는 이름이 자동 입력되고 휴대폰 본인확인 후에는 이름과 휴대폰번호가 자동 입력되어 수동으로 입력할수 없게 됩니다.</span>
<?php } ?>
<input type="text" id="reg_mb_name" name="mb_name" value="<?php echo $member['mb_name'] ?>" <?php echo $required ?> <?php echo $readonly; ?> class="frm_input <?php echo $required ?> <?php echo $readonly ?>" size="10">
<input type="text" id="reg_mb_name" name="mb_name" value="<?php echo get_text($member['mb_name']) ?>" <?php echo $required ?> <?php echo $readonly; ?> class="frm_input <?php echo $required ?> <?php echo $readonly ?>" size="10">
<?php
if($config['cf_cert_use']) {
if($config['cf_cert_ipin'])
@@ -92,8 +92,8 @@ add_stylesheet('<link rel="stylesheet" href="'.$member_skin_url.'/style.css">',
공백없이 한글,영문,숫자만 입력 가능 (한글2자, 영문4자 이상)<br>
닉네임을 바꾸시면 앞으로 <?php echo (int)$config['cf_nick_modify'] ?>일 이내에는 변경 할 수 없습니다.
</span>
<input type="hidden" name="mb_nick_default" value="<?php echo isset($member['mb_nick'])?$member['mb_nick']:''; ?>">
<input type="text" name="mb_nick" value="<?php echo isset($member['mb_nick'])?$member['mb_nick']:''; ?>" id="reg_mb_nick" required class="frm_input required nospace" size="10" maxlength="20">
<input type="hidden" name="mb_nick_default" value="<?php echo isset($member['mb_nick'])?get_text($member['mb_nick']):''; ?>">
<input type="text" name="mb_nick" value="<?php echo isset($member['mb_nick'])?get_text($member['mb_nick']):''; ?>" id="reg_mb_nick" required class="frm_input required nospace" size="10" maxlength="20">
<span id="msg_mb_nick"></span>
</td>
</tr>
@@ -116,14 +116,14 @@ add_stylesheet('<link rel="stylesheet" href="'.$member_skin_url.'/style.css">',
<?php if ($config['cf_use_homepage']) { ?>
<tr>
<th scope="row"><label for="reg_mb_homepage">홈페이지<?php if ($config['cf_req_homepage']){ ?><strong class="sound_only">필수</strong><?php } ?></label></th>
<td><input type="text" name="mb_homepage" value="<?php echo $member['mb_homepage'] ?>" id="reg_mb_homepage" <?php echo $config['cf_req_homepage']?"required":""; ?> class="frm_input <?php echo $config['cf_req_homepage']?"required":""; ?>" size="70" maxlength="255"></td>
<td><input type="text" name="mb_homepage" value="<?php echo get_text($member['mb_homepage']) ?>" id="reg_mb_homepage" <?php echo $config['cf_req_homepage']?"required":""; ?> class="frm_input <?php echo $config['cf_req_homepage']?"required":""; ?>" size="70" maxlength="255"></td>
</tr>
<?php } ?>
<?php if ($config['cf_use_tel']) { ?>
<tr>
<th scope="row"><label for="reg_mb_tel">전화번호<?php if ($config['cf_req_tel']) { ?><strong class="sound_only">필수</strong><?php } ?></label></th>
<td><input type="text" name="mb_tel" value="<?php echo $member['mb_tel'] ?>" id="reg_mb_tel" <?php echo $config['cf_req_tel']?"required":""; ?> class="frm_input <?php echo $config['cf_req_tel']?"required":""; ?>" maxlength="20"></td>
<td><input type="text" name="mb_tel" value="<?php echo get_text($member['mb_tel']) ?>" id="reg_mb_tel" <?php echo $config['cf_req_tel']?"required":""; ?> class="frm_input <?php echo $config['cf_req_tel']?"required":""; ?>" maxlength="20"></td>
</tr>
<?php } ?>
@@ -131,9 +131,9 @@ add_stylesheet('<link rel="stylesheet" href="'.$member_skin_url.'/style.css">',
<tr>
<th scope="row"><label for="reg_mb_hp">휴대폰번호<?php if ($config['cf_req_hp']) { ?><strong class="sound_only">필수</strong><?php } ?></label></th>
<td>
<input type="text" name="mb_hp" value="<?php echo $member['mb_hp'] ?>" id="reg_mb_hp" <?php echo ($config['cf_req_hp'])?"required":""; ?> class="frm_input <?php echo ($config['cf_req_hp'])?"required":""; ?>" maxlength="20">
<input type="text" name="mb_hp" value="<?php echo get_text($member['mb_hp']) ?>" id="reg_mb_hp" <?php echo ($config['cf_req_hp'])?"required":""; ?> class="frm_input <?php echo ($config['cf_req_hp'])?"required":""; ?>" maxlength="20">
<?php if ($config['cf_cert_use'] && $config['cf_cert_hp']) { ?>
<input type="hidden" name="old_mb_hp" value="<?php echo $member['mb_hp'] ?>">
<input type="hidden" name="old_mb_hp" value="<?php echo get_text($member['mb_hp']) ?>">
<?php } ?>
</td>
</tr>
@@ -149,14 +149,14 @@ add_stylesheet('<link rel="stylesheet" href="'.$member_skin_url.'/style.css">',
<label for="reg_mb_zip" class="sound_only">우편번호<?php echo $config['cf_req_addr']?'<strong class="sound_only"> 필수</strong>':''; ?></label>
<input type="text" name="mb_zip" value="<?php echo $member['mb_zip1'].$member['mb_zip2']; ?>" id="reg_mb_zip" <?php echo $config['cf_req_addr']?"required":""; ?> class="frm_input <?php echo $config['cf_req_addr']?"required":""; ?>" size="5" maxlength="6">
<button type="button" class="btn_frmline" onclick="win_zip('fregisterform', 'mb_zip', 'mb_addr1', 'mb_addr2', 'mb_addr3', 'mb_addr_jibeon');">주소 검색</button><br>
<input type="text" name="mb_addr1" value="<?php echo $member['mb_addr1'] ?>" id="reg_mb_addr1" <?php echo $config['cf_req_addr']?"required":""; ?> class="frm_input frm_address <?php echo $config['cf_req_addr']?"required":""; ?>" size="50">
<input type="text" name="mb_addr1" value="<?php echo get_text($member['mb_addr1']) ?>" id="reg_mb_addr1" <?php echo $config['cf_req_addr']?"required":""; ?> class="frm_input frm_address <?php echo $config['cf_req_addr']?"required":""; ?>" size="50">
<label for="reg_mb_addr1">기본주소<?php echo $config['cf_req_addr']?'<strong class="sound_only"> 필수</strong>':''; ?></label><br>
<input type="text" name="mb_addr2" value="<?php echo $member['mb_addr2'] ?>" id="reg_mb_addr2" class="frm_input frm_address" size="50">
<input type="text" name="mb_addr2" value="<?php echo get_text($member['mb_addr2']) ?>" id="reg_mb_addr2" class="frm_input frm_address" size="50">
<label for="reg_mb_addr2">상세주소</label>
<br>
<input type="text" name="mb_addr3" value="<?php echo $member['mb_addr3'] ?>" id="reg_mb_addr3" class="frm_input frm_address" size="50" readonly="readonly">
<input type="text" name="mb_addr3" value="<?php echo get_text($member['mb_addr3']) ?>" id="reg_mb_addr3" class="frm_input frm_address" size="50" readonly="readonly">
<label for="reg_mb_addr3">참고항목</label>
<input type="hidden" name="mb_addr_jibeon" value="<?php echo $member['mb_addr_jibeon']; ?>">
<input type="hidden" name="mb_addr_jibeon" value="<?php echo get_text($member['mb_addr_jibeon']); ?>">
</td>
</tr>
<?php } ?>
+1 -1
View File
@@ -61,7 +61,7 @@ add_stylesheet('<link rel="stylesheet" href="'.$poll_skin_url.'/style.css">', 0)
<input type="hidden" name="po_id" value="<?php echo $po_id ?>">
<input type="hidden" name="w" value="">
<input type="hidden" name="skin_dir" value="<?php echo $skin_dir ?>">
<?php if ($is_member) { ?><input type="hidden" name="pc_name" value="<?php echo cut_str($member['mb_nick'],255) ?>"><?php } ?>
<?php if ($is_member) { ?><input type="hidden" name="pc_name" value="<?php echo get_text(cut_str($member['mb_nick'],255)); ?>"><?php } ?>
<h3><?php echo $po_etc ?></h3>
<div class="tbl_frm01 tbl_wrap">
+1 -1
View File
@@ -11,7 +11,7 @@ add_stylesheet('<link rel="stylesheet" href="'.$popular_skin_url.'/style.css">',
<h2>인기검색어</h2>
<ul>
<?php for ($i=0; $i<count($list); $i++) { ?>
<li><a href="<?php echo G5_BBS_URL ?>/search.php?sfl=wr_subject&amp;sop=and&amp;stx=<?php echo urlencode($list[$i]['pp_word']) ?>"><?php echo $list[$i]['pp_word'] ?></a></li>
<li><a href="<?php echo G5_BBS_URL ?>/search.php?sfl=wr_subject&amp;sop=and&amp;stx=<?php echo urlencode($list[$i]['pp_word']) ?>"><?php echo get_text($list[$i]['pp_word']); ?></a></li>
<?php } ?>
</ul>
</div>
+3 -3
View File
@@ -53,7 +53,7 @@ add_stylesheet('<link rel="stylesheet" href="'.$qa_skin_url.'/style.css">', 0);
<tr>
<th scope="row"><label for="qa_email">이메일</label></th>
<td>
<input type="text" name="qa_email" value="<?php echo $write['qa_email']; ?>" id="qa_email" <?php echo $req_email; ?> class="<?php echo $req_email.' '; ?>frm_input email" size="50" maxlength="100">
<input type="text" name="qa_email" value="<?php echo get_text($write['qa_email']); ?>" id="qa_email" <?php echo $req_email; ?> class="<?php echo $req_email.' '; ?>frm_input email" size="50" maxlength="100">
<input type="checkbox" name="qa_email_recv" value="1" <?php if($write['qa_email_recv']) echo 'checked="checked"'; ?>>
<label for="qa_email_recv">답변받기</label>
</td>
@@ -64,7 +64,7 @@ add_stylesheet('<link rel="stylesheet" href="'.$qa_skin_url.'/style.css">', 0);
<tr>
<th scope="row"><label for="qa_hp">휴대폰</label></th>
<td>
<input type="text" name="qa_hp" value="<?php echo $write['qa_hp']; ?>" id="qa_hp" <?php echo $req_hp; ?> class="<?php echo $req_hp.' '; ?>frm_input" size="30">
<input type="text" name="qa_hp" value="<?php echo get_text($write['qa_hp']); ?>" id="qa_hp" <?php echo $req_hp; ?> class="<?php echo $req_hp.' '; ?>frm_input" size="30">
<?php if($qaconfig['qa_use_sms']) { ?>
<input type="checkbox" name="qa_sms_recv" value="1" <?php if($write['qa_sms_recv']) echo 'checked="checked"'; ?>> 답변등록 SMS알림 수신
<?php } ?>
@@ -75,7 +75,7 @@ add_stylesheet('<link rel="stylesheet" href="'.$qa_skin_url.'/style.css">', 0);
<tr>
<th scope="row"><label for="qa_subject">제목<strong class="sound_only">필수</strong></label></th>
<td>
<input type="text" name="qa_subject" value="<?php echo $write['qa_subject']; ?>" id="qa_subject" required class="frm_input required" size="50" maxlength="255">
<input type="text" name="qa_subject" value="<?php echo get_text($write['qa_subject']); ?>" id="qa_subject" required class="frm_input required" size="50" maxlength="255">
</td>
</tr>
+7 -1
View File
@@ -279,4 +279,10 @@ a.btn_admin:focus, a.btn_admin:hover {text-decoration:none}
.pg_current {display:inline-block;margin:0 4px 0 0;background:#333;color:#fff;font-weight:normal}
/* Mobile화면으로 */
#device_change {display:block;margin:0.3em;padding:0.5em 0;border:1px solid #eee;border-radius:2em;background:#fff;color:#000;font-size:2em;text-decoration:none;text-align:center}
#device_change {display:block;margin:0.3em;padding:0.5em 0;border:1px solid #eee;border-radius:2em;background:#fff;color:#000;font-size:2em;text-decoration:none;text-align:center}
/*캡챠 모바일에서 피시버젼*/
#captcha.m_captcha audio{display:block;margin:5px 0 10px}
#captcha.m_captcha #captcha_key{margin-left:3px }
#captcha.m_captcha #captcha_reload span{background:none;display:inline}
#captcha.m_captcha #captcha_reload {position:relative ;width:auto;top:0;left:0;margin:0;padding:0 10px;height:43px;border:0;background:#e4eaec;vertical-align:middle;overflow:hidden;cursor:pointer}
+12
View File
@@ -102,6 +102,7 @@ a:hover, a:focus, a:active {color:#000;text-decoration:underline}
/* 화면낭독기 사용자용 */
#hd_login_msg {position:absolute;top:0;left:0;width:0;height:0;overflow:hidden}
.msg_sound_only, .sound_only {display:inline-block;position:absolute;top:0;left:0;margin:0 !important;padding:0 !important;width:1px !important;height:1px !important;font-size:0 !important;line-height:0 !important;overflow:hidden}
/* 본문 바로가기 */
.to_content a {z-index:100000;position:absolute;top:0;left:0;width:0;height:0;font-size:0;line-height:0;overflow:hidden}
@@ -116,6 +117,17 @@ a:hover, a:focus, a:active {color:#000;text-decoration:underline}
#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_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}
/*단축키일람 */
.btn_cke_sc{background:#333;color:#fff;padding:5px;border:none;margin-bottom:5px}
.cke_sc_def {margin:0 0 5px;padding:10px;border:1px solid #ccc;background:#f7f7f7;text-align:center}
.cke_sc_def dl{margin:0 0 5px;text-align:left;zoom:1}
.cke_sc_def dl:after {display:block;visibility:hidden;clear:both;content:""}
.cke_sc_def dt, .cke_sc_def dd {float:left;margin:0;padding:5px 0;border-bottom:1px solid #e9e9e9}
.cke_sc_def dt {width:50%;font-weight:bold}
.cke_sc_def dd {width:50%}
.btn_cke_sc_close{background:#333;padding:5px;border:none;color:#fff}
/* 버튼 */
a.btn01 {display:inline-block;padding:8px 7px 7px;border:1px solid #ccc;background:#fafafa;color:#000;text-decoration:none;vertical-align:middle}
+1 -1
View File
@@ -85,7 +85,7 @@ if ($is_member) { // 회원이라면 로그인 중이라는 메세지를 출력
else if ($is_admin == 'group') $sr_admin_msg = "그룹관리자 ";
else if ($is_admin == 'board') $sr_admin_msg = "게시판관리자 ";
echo '<div id="hd_login_msg">'.$sr_admin_msg.$member['mb_nick'].'님 로그인 중 ';
echo '<div id="hd_login_msg">'.$sr_admin_msg.get_text($member['mb_nick']).'님 로그인 중 ';
echo '<a href="'.G5_BBS_URL.'/logout.php">로그아웃</a></div>';
}
?>
@@ -193,8 +193,7 @@ function html_auto_br(obj)
function fwrite_submit(f)
{
<?php echo get_editor_js('wr_content', $is_dhtml_editor); ?>
<?php echo chk_editor_js('wr_content', $is_dhtml_editor); ?>
<?php echo $editor_js; // 에디터 사용시 자바스크립트에서 내용을 폼필드로 넣어주며 내용이 입력되었는지 검사함 ?>
var subject = "";
var content = "";
@@ -243,7 +242,7 @@ function fwrite_submit(f)
}
}
<?php if ($is_guest) { echo chk_captcha_js(); } ?>
<?php echo $captcha_js; // 캡챠 사용시 자바스크립트에서 입력된 캡챠를 검사함 ?>
document.getElementById("btn_submit").disabled = "disabled";
@@ -192,8 +192,7 @@ function html_auto_br(obj)
function fwrite_submit(f)
{
<?php echo get_editor_js('wr_content', $is_dhtml_editor); ?>
<?php echo chk_editor_js('wr_content', $is_dhtml_editor); ?>
<?php echo $editor_js; // 에디터 사용시 자바스크립트에서 내용을 폼필드로 넣어주며 내용이 입력되었는지 검사함 ?>
var subject = "";
var content = "";
@@ -242,7 +241,7 @@ function fwrite_submit(f)
}
}
<?php if ($is_guest) { echo chk_captcha_js(); } ?>
<?php echo $captcha_js; // 캡챠 사용시 자바스크립트에서 입력된 캡챠를 검사함 ?>
document.getElementById("btn_submit").disabled = "disabled";
@@ -13,7 +13,7 @@ add_stylesheet('<link rel="stylesheet" href="'.$member_skin_url.'/style.css">',
<input type="hidden" name="attach" value="2">
<input type="hidden" name="token" value="<?php echo $token ?>">
<?php if ($is_member) { // 회원이면 ?>
<input type="hidden" name="fnick" value="<?php echo $member['mb_nick'] ?>">
<input type="hidden" name="fnick" value="<?php echo get_text($member['mb_nick']); ?>">
<input type="hidden" name="fmail" value="<?php echo $member['mb_email'] ?>">
<?php } ?>
@@ -20,8 +20,8 @@ add_stylesheet('<link rel="stylesheet" href="'.$member_skin_url.'/style.css">',
<input type="hidden" name="cert_no" value="">
<?php if (isset($member['mb_sex'])) { ?><input type="hidden" name="mb_sex" value="<?php echo $member['mb_sex'] ?>"><?php } ?>
<?php if (isset($member['mb_nick_date']) && $member['mb_nick_date'] > date("Y-m-d", G5_SERVER_TIME - ($config['cf_nick_modify'] * 86400))) { // 닉네임수정일이 지나지 않았다면 ?>
<input type="hidden" name="mb_nick_default" value="<?php echo $member['mb_nick'] ?>">
<input type="hidden" name="mb_nick" value="<?php echo $member['mb_nick'] ?>">
<input type="hidden" name="mb_nick_default" value="<?php echo get_text($member['mb_nick']) ?>">
<input type="hidden" name="mb_nick" value="<?php echo get_text($member['mb_nick']) ?>">
<?php } ?>
<div class="tbl_frm01 tbl_wrap">
@@ -55,7 +55,7 @@ add_stylesheet('<link rel="stylesheet" href="'.$member_skin_url.'/style.css">',
<?php if ($config['cf_cert_use']) { ?>
<span class="frm_info">아이핀 본인확인 후에는 이름이 자동 입력되고 휴대폰 본인확인 후에는 이름과 휴대폰번호가 자동 입력되어 수동으로 입력할수 없게 됩니다.</span>
<?php } ?>
<input type="text" id="reg_mb_name" name="mb_name" value="<?php echo $member['mb_name'] ?>" <?php echo $required ?> <?php echo $readonly; ?> class="frm_input <?php echo $required ?> <?php echo $readonly ?>">
<input type="text" id="reg_mb_name" name="mb_name" value="<?php echo get_text($member['mb_name']) ?>" <?php echo $required ?> <?php echo $readonly; ?> class="frm_input <?php echo $required ?> <?php echo $readonly ?>">
<?php
if($config['cf_cert_use']) {
if($config['cf_cert_ipin'])
@@ -87,8 +87,8 @@ add_stylesheet('<link rel="stylesheet" href="'.$member_skin_url.'/style.css">',
공백없이 한글,영문,숫자만 입력 가능 (한글2자, 영문4자 이상)<br>
닉네임을 바꾸시면 앞으로 <?php echo (int)$config['cf_nick_modify'] ?>일 이내에는 변경 할 수 없습니다.
</span>
<input type="hidden" name="mb_nick_default" value="<?php echo isset($member['mb_nick'])?$member['mb_nick']:''; ?>">
<input type="text" name="mb_nick" value="<?php echo isset($member['mb_nick'])?$member['mb_nick']:''; ?>" id="reg_mb_nick" required class="frm_input required nospace" maxlength="20">
<input type="hidden" name="mb_nick_default" value="<?php echo isset($member['mb_nick'])?get_text($member['mb_nick']):''; ?>">
<input type="text" name="mb_nick" value="<?php echo isset($member['mb_nick'])?get_text($member['mb_nick']):''; ?>" id="reg_mb_nick" required class="frm_input required nospace" maxlength="20">
<span id="msg_mb_nick"></span>
</td>
</tr>
@@ -111,14 +111,14 @@ add_stylesheet('<link rel="stylesheet" href="'.$member_skin_url.'/style.css">',
<?php if ($config['cf_use_homepage']) { ?>
<tr>
<th scope="row"><label for="reg_mb_homepage">홈페이지<?php if ($config['cf_req_homepage']){ ?><strong class="sound_only">필수</strong><?php } ?></label></th>
<td><input type="url" name="mb_homepage" value="<?php echo $member['mb_homepage'] ?>" id="reg_mb_homepage" class="frm_input <?php echo $config['cf_req_homepage']?"required":""; ?>" maxlength="255" <?php echo $config['cf_req_homepage']?"required":""; ?>></td>
<td><input type="url" name="mb_homepage" value="<?php echo get_text($member['mb_homepage']) ?>" id="reg_mb_homepage" class="frm_input <?php echo $config['cf_req_homepage']?"required":""; ?>" maxlength="255" <?php echo $config['cf_req_homepage']?"required":""; ?>></td>
</tr>
<?php } ?>
<?php if ($config['cf_use_tel']) { ?>
<tr>
<th scope="row"><label for="reg_mb_tel">전화번호<?php if ($config['cf_req_tel']) { ?><strong class="sound_only">필수</strong><?php } ?></label></th>
<td><input type="text" name="mb_tel" value="<?php echo $member['mb_tel'] ?>" id="reg_mb_tel" class="frm_input <?php echo $config['cf_req_tel']?"required":""; ?>" maxlength="20" <?php echo $config['cf_req_tel']?"required":""; ?>></td>
<td><input type="text" name="mb_tel" value="<?php echo get_text($member['mb_tel']) ?>" id="reg_mb_tel" class="frm_input <?php echo $config['cf_req_tel']?"required":""; ?>" maxlength="20" <?php echo $config['cf_req_tel']?"required":""; ?>></td>
</tr>
<?php } ?>
@@ -126,9 +126,9 @@ add_stylesheet('<link rel="stylesheet" href="'.$member_skin_url.'/style.css">',
<tr>
<th scope="row"><label for="reg_mb_hp">휴대폰번호<?php if ($config['cf_req_hp']) { ?><strong class="sound_only">필수</strong><?php } ?></label></th>
<td>
<input type="text" name="mb_hp" value="<?php echo $member['mb_hp'] ?>" id="reg_mb_hp" <?php echo ($config['cf_req_hp'])?"required":""; ?> class="frm_input <?php echo ($config['cf_req_hp'])?"required":""; ?>" maxlength="20">
<input type="text" name="mb_hp" value="<?php echo get_text($member['mb_hp']) ?>" id="reg_mb_hp" <?php echo ($config['cf_req_hp'])?"required":""; ?> class="frm_input <?php echo ($config['cf_req_hp'])?"required":""; ?>" maxlength="20">
<?php if ($config['cf_cert_use'] && $config['cf_cert_hp']) { ?>
<input type="hidden" name="old_mb_hp" value="<?php echo $member['mb_hp'] ?>">
<input type="hidden" name="old_mb_hp" value="<?php echo get_text($member['mb_hp']) ?>">
<?php } ?>
</td>
</tr>
@@ -145,13 +145,13 @@ add_stylesheet('<link rel="stylesheet" href="'.$member_skin_url.'/style.css">',
<input type="text" name="mb_zip" value="<?php echo $member['mb_zip1'].$member['mb_zip2']; ?>" id="reg_mb_zip" <?php echo $config['cf_req_addr']?"required":""; ?> class="frm_input <?php echo $config['cf_req_addr']?"required":""; ?>" size="5" maxlength="6">
<button type="button" class="btn_frmline" onclick="win_zip('fregisterform', 'mb_zip', 'mb_addr1', 'mb_addr2', 'mb_addr3', 'mb_addr_jibeon');">주소 검색</button><br>
<label for="reg_mb_addr1" class="sound_only">주소<?php echo $config['cf_req_addr']?'<strong class="sound_only"> 필수</strong>':''; ?></label>
<input type="text" name="mb_addr1" value="<?php echo $member['mb_addr1'] ?>" id="reg_mb_addr1" <?php echo $config['cf_req_addr']?"required":""; ?> class="frm_input frm_address <?php echo $config['cf_req_addr']?"required":""; ?>" size="50"><br>
<input type="text" name="mb_addr1" value="<?php echo get_text($member['mb_addr1']) ?>" id="reg_mb_addr1" <?php echo $config['cf_req_addr']?"required":""; ?> class="frm_input frm_address <?php echo $config['cf_req_addr']?"required":""; ?>" size="50"><br>
<label for="reg_mb_addr2" class="sound_only">상세주소</label>
<input type="text" name="mb_addr2" value="<?php echo $member['mb_addr2'] ?>" id="reg_mb_addr2" class="frm_input frm_address" size="50">
<input type="text" name="mb_addr2" value="<?php echo get_text($member['mb_addr2']) ?>" id="reg_mb_addr2" class="frm_input frm_address" size="50">
<br>
<label for="reg_mb_addr3" class="sound_only">참고항목</label>
<input type="text" name="mb_addr3" value="<?php echo $member['mb_addr3'] ?>" id="reg_mb_addr3" class="frm_input frm_address" size="50" readonly="readonly">
<input type="hidden" name="mb_addr_jibeon" value="<?php echo $member['mb_addr_jibeon']; ?>">
<input type="text" name="mb_addr3" value="<?php echo get_text($member['mb_addr3']) ?>" id="reg_mb_addr3" class="frm_input frm_address" size="50" readonly="readonly">
<input type="hidden" name="mb_addr_jibeon" value="<?php echo get_text($member['mb_addr_jibeon']); ?>">
</td>
</tr>
<?php } ?>
@@ -57,7 +57,7 @@ add_stylesheet('<link rel="stylesheet" href="'.$poll_skin_url.'/style.css">', 0)
<input type="hidden" name="po_id" value="<?php echo $po_id ?>">
<input type="hidden" name="w" value="">
<input type="hidden" name="skin_dir" value="<?php echo urlencode($skin_dir); ?>">
<?php if ($is_member) { ?><input type="hidden" name="pc_name" value="<?php echo cut_str($member['mb_nick'],255) ?>"><?php } ?>
<?php if ($is_member) { ?><input type="hidden" name="pc_name" value="<?php echo get_text(cut_str($member['mb_nick'],255)); ?>"><?php } ?>
<h3><?php echo $po_etc ?></h3>
<div class="tbl_frm01 tbl_wrap">
@@ -10,7 +10,7 @@ add_stylesheet('<link rel="stylesheet" href="'.$popular_skin_url.'/style.css">',
<h2>인기검색어</h2>
<ul>
<?php for ($i=0; $i<count($list); $i++) { ?>
<li><a href="<?php echo G5_BBS_URL ?>/search.php?sfl=wr_subject&amp;sop=and&amp;stx=<?php echo urlencode($list[$i]['pp_word']) ?>"><?php echo $list[$i]['pp_word'] ?></a></li>
<li><a href="<?php echo G5_BBS_URL ?>/search.php?sfl=wr_subject&amp;sop=and&amp;stx=<?php echo urlencode($list[$i]['pp_word']) ?>"><?php echo get_text($list[$i]['pp_word']); ?></a></li>
<?php } ?>
</ul>
</div>
@@ -53,7 +53,7 @@ add_stylesheet('<link rel="stylesheet" href="'.$qa_skin_url.'/style.css">', 0);
<tr>
<th scope="row"><label for="qa_email">이메일</label></th>
<td>
<input type="email" name="qa_email" value="<?php echo $write['qa_email']; ?>" id="qa_email" <?php echo $req_email; ?> class="<?php echo $req_email.' '; ?>frm_input email" maxlength="100">
<input type="email" name="qa_email" value="<?php echo get_text($write['qa_email']); ?>" id="qa_email" <?php echo $req_email; ?> class="<?php echo $req_email.' '; ?>frm_input email" maxlength="100">
<input type="checkbox" name="qa_email_recv" value="1" id="qa_email_recv" <?php if($write['qa_email_recv']) echo 'checked="checked"'; ?>>
<label for="qa_email_recv">답변받기</label>
</td>
@@ -64,7 +64,7 @@ add_stylesheet('<link rel="stylesheet" href="'.$qa_skin_url.'/style.css">', 0);
<tr>
<th scope="row"><label for="qa_hp">휴대폰</label></th>
<td>
<input type="text" name="qa_hp" value="<?php echo $write['qa_hp']; ?>" id="qa_hp" <?php echo $req_hp; ?> class="<?php echo $req_hp.' '; ?>frm_input" size="30">
<input type="text" name="qa_hp" value="<?php echo get_text($write['qa_hp']); ?>" id="qa_hp" <?php echo $req_hp; ?> class="<?php echo $req_hp.' '; ?>frm_input" size="30">
<?php if($qaconfig['qa_use_sms']) { ?>
<input type="checkbox" name="qa_sms_recv" value="1" <?php if($write['qa_sms_recv']) echo 'checked="checked"'; ?>> 답변등록 SMS알림 수신
<?php } ?>
@@ -75,7 +75,7 @@ add_stylesheet('<link rel="stylesheet" href="'.$qa_skin_url.'/style.css">', 0);
<tr>
<th scope="row"><label for="qa_subject">제목<strong class="sound_only">필수</strong></label></th>
<td>
<input type="text" name="qa_subject" value="<?php echo $write['qa_subject']; ?>" id="qa_subject" required class="frm_input required" maxlength="255">
<input type="text" name="qa_subject" value="<?php echo get_text($write['qa_subject']); ?>" id="qa_subject" required class="frm_input required" maxlength="255">
</td>
</tr>

Some files were not shown because too many files have changed in this diff Show More