/home/mjc1/public_html/sms/smsLibUtf8.php


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
<?
// 글자 짜르는 함수
function str_cut($str$number){ 
    
$length strlen($str); 

    for(
$k 0$k $number$k++) 
    if(
ord(substr($str$k1)) > 127
        
$k++; 

    if(
$length $number
    
$return_str substr($str0$k).".."
    else 
    
$return_str $str

    return 
$return_str
}

// sms 전송 함수(사용자ID, 받는사람핸드폰, 보내는사람(회신전화번호), 발송일, 메세지, 현재포인트)
function SendSMS($userId$totel$fromtel$msg$point) {
    global 
$conn;                                // DB Connect 정보를 가진 변수 호출
    
global $sms_no;                                // SMS 고유번호를 가진 변수 호출
    
$check            0;                        // insert 성공 여부를 확인하기 위한 변수
    
$sendOkCount    0;                        // 전송 성공 갯수 담는 변수
    
$sendFailCount    0;                        // 전송 실패 갯수 담는 변수
    
$totellist        explode(","$totel);        // 받는 대상이 여러명일 때 , 단위로 짜른다
    
$retunMsg        "";                        // return 메세지
    
$num             1;                        // 뒤에 붙이는 숫자
    
    
$charSet_sql "set names utf8";      
    @
mysql_query($charSet_sql$conn);    
    
    if(
count($totellist) <= $point){             // 사용자의 포인트와 sms발송건수가 같을 때 발송
        // sms는 80자 까지로 제한
        
$msg str_cut($msg80);
        
        
// SMS 고유번호
        
$sql = @mysql_query("SELECT SP_SMS_NO()");
        while(
$row = @mysql_fetch_assoc($rs)){
            
$sms_no $row['SP_SMS_NO()'];
        }    
    
        
// 포인트 차감
        
$point $point count($totellist);
        
$sql "UPDATE smsuser SET restcnt = (restcnt - ".count($totellist).") WHERE userid = '{$userId}'";
        @
mysql_query($sql$conn);
        
        
// 전송예약 테이블에 DATA insert        
        
foreach($totellist as $value){    
            
// 고유키 생성(yymmddhhmmss + 프로시저6자리 + 순번매긴것)    
            
$num $num == 100 $num;
            
$num sprintf("%02d"$num);
            
$sMsgId date('ymdHis'time());
            
$sMsgId $sMsgId.$sms_no.$num;
            
            
// 전화번호에 hyphen(-) 을 제거 하는 작업
            
$value        str_replace("-"""$value);
            
$fromtel    str_replace("-"""$fromtel);
            
            
// 실제 전송 Query
            
$sql "INSERT telink_sms SET 
                        CMP_MSG_ID    = '
{$sMsgId}',
                        WRT_DTTM     = DATE_FORMAT(NOW(), '%Y%m%d%H%i%s'),
                        SND_DTTM    = DATE_FORMAT(NOW(), '%Y%m%d%H%i%s'),
                        SND_PHN_ID    = '
{$userId}',
                        RCV_PHN_ID    = '
{$value}',
                        CALLBACK    = '
{$fromtel}',
                        SND_MSG        = '
{$msg}'
                    "
;
            @
mysql_query($sql$conn);
            
$check = @mysql_affected_rows();
            
            
// 성공적인 발송이면 전송 횟수 카운트 실패하면 실패횟수 카운트
            
if($check != 0){
                
$sendOkCount++;
            }else{
                
$sendFailCount++;
            }
            
$num++;                    
        }
        @
mysql_close();        
        
$retunMsg "[ok];pt=".$point.";";
                        
    }else{
        
$retunMsg "잔여포인트가 부족합니다.";
    }
    return 
$retunMsg;
}

// mms 전송 함수(사용자ID, 받는사람핸드폰, 보내는사람(회신전화번호), 발송일, 메세지, 현재포인트)
function SendMMS($userId$totel$fromtel$msg$point) {
    global 
$conn;                                // DB Connect 정보를 가진 변수 호출
    
$check            0;                        // insert 성공 여부를 확인하기 위한 변수
    
$sendOkCount    0;                        // 전송 성공 갯수 담는 변수
    
$sendFailCount    0;                        // 전송 실패 갯수 담는 변수
    
$totellist        explode(","$totel);        // 받는 대상이 여러명일 때 , 단위로 짜른다
    
$retunMsg        "";                        // return 메세지
    
$num             1;                        // 뒤에 붙이는 숫자    
    
    
$charSet_sql "set names utf8";      
    @
mysql_query($charSet_sql$conn);    
    
    if((
count($totellist) * 3) <= $point){         // 사용자의 포인트와 sms발송건수가 같을 때 발송
        // mms는 80자 까지로 제한
        
$msg str_cut($msg2000);    
    
        
// MMS 고유번호
        
$sql = @mysql_query("SELECT SP_SMS_NO()");
        while(
$row = @mysql_fetch_assoc($rs)){
            
$sms_no $row['SP_SMS_NO()'];
        }    
    
        
// 포인트 차감
        
$point $point - (count($totellist) * 3);
        
$sql "UPDATE smsuser SET restcnt = (restcnt - ".(count($totellist) * 3).") WHERE userid = '{$userId}'";
        @
mysql_query($sql$conn);
        
        
// 전송예약 테이블에 DATA insert
        
foreach($totellist as $value){    
            
// 고유키 생성(yymmddhhmmss + 프로시저6자리 + 순번매긴것)    
            
$num $num == 100 $num;
            
$num sprintf("%02d"$num);
            
$sMsgId date('ymdHis'time());
            
$sMsgId $sMsgId.$sms_no.$num;
            
            
// 전화번호에 hyphen(-) 을 제거 하는 작업
            
$value        str_replace("-"""$value);
            
$fromtel    str_replace("-"""$fromtel);            

            
// 실제 전송 Query
            
$sql "INSERT tbl_submit_queue SET              
                        CMP_MSG_ID            = '
{$sMsgId}',
                        USR_ID                = 'HH053112',
                        USED_CD                = '10',
                        RESERVED_FG            = 'I',
                        RESERVED_DTTM        = DATE_FORMAT(NOW(), '%Y%m%d%H%i%s'),
                        RCV_PHN_ID            = '
{$value}',
                        SND_PHN_ID            = '
{$fromtel}',
                        SND_MSG                = '
{$msg}',
                        CONTENT_CNT            = 1,                        
                        CONTENT_MIME_TYPE    = 'text/plain',                        
                        MSG_TITLE            = NULL,                        
                        ETC_CHAR_1            = '
{$userId}'                        
                    "
;    
            @
mysql_query($sql$conn);
            
$check = @mysql_affected_rows();
            
            
// 성공적인 발송이면 전송 횟수 카운트 실패하면 실패횟수 카운트
            
if($check != 0){
                
$sendOkCount++;
            }else{
                
$sendFailCount++;
            }
            
$num++;        
        }
        @
mysql_close();
        
$retunMsg "[ok];pt=".$point.";";
                        
    }else{
        
$retunMsg "잔여포인트가 부족합니다.";
    }
    return 
$retunMsg;
}        
?>