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
|
<?php if (!defined('_GNUBOARD_')) exit; // 아이코드에서 제공하는 함수
/////////////////////////////////////////////////////////////////////////////////////////// // 이 부분은 건드릴 필요가 없습니다.
function spacing($text,$size) { for ($i=0; $i<$size; $i++) $text.=" "; $text = substr($text,0,$size); return $text; }
function cut_char($word, $cut) { // $word=trim(stripslashes($word)); $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; }
function CheckCommonType($dest, $rsvTime) { //$dest=eregi_replace("[^0-9]","",$dest); $dest=preg_replace("/[^0-9]/i","",$dest); if (strlen($dest)<10 || strlen($dest)>11) return "휴대폰 번호가 틀렸습니다"; $CID=substr($dest,0,3); //if ( eregi("[^0-9]",$CID) || ($CID!='010' && $CID!='011' && $CID!='016' && $CID!='017' && $CID!='018' && $CID!='019') ) return "휴대폰 앞자리 번호가 잘못되었습니다"; if ( preg_match("/[^0-9]/i",$CID) || ($CID!='010' && $CID!='011' && $CID!='016' && $CID!='017' && $CID!='018' && $CID!='019') ) return "휴대폰 앞자리 번호가 잘못되었습니다"; //$rsvTime=eregi_replace("[^0-9]","",$rsvTime); $rsvTime=preg_replace("/[^0-9]/i","",$rsvTime); if ($rsvTime) { if (!checkdate(substr($rsvTime,4,2),substr($rsvTime,6,2),substr($rsvTime,0,4))) return "예약날짜가 잘못되었습니다"; if (substr($rsvTime,8,2)>23 || substr($rsvTime,10,2)>59) return "예약시간이 잘못되었습니다"; } }
class SMS { var $ID; var $PWD; var $SMS_Server; var $port; var $SMS_Port; var $Data = array(); var $Result = 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); }
function Init() { $this->Data = ""; $this->Result = ""; }
function Add($dest, $callBack, $Caller, $msg, $rsvTime="") { global $g5;
// 내용 검사 1 $Error = CheckCommonType($dest, $rsvTime); if ($Error) return $Error; // 내용 검사 2 //if ( eregi("[^0-9]",$callBack) ) return "회신 전화번호가 잘못되었습니다"; if ( preg_match("/[^0-9]/i",$callBack) ) return "회신 전화번호가 잘못되었습니다";
$msg=cut_char($msg,80); // 80자 제한 // 보낼 내용을 배열에 집어넣기 $dest = spacing($dest,11); $callBack = spacing($callBack,11); $Caller = spacing($Caller,10); $rsvTime = spacing($rsvTime,12); $msg = spacing($msg,80);
$this->Data[] = '01144 '.$this->ID.$this->PWD.$dest.$callBack.$Caller.$rsvTime.$msg; return ""; }
function AddURL($dest, $callBack, $URL, $msg, $rsvTime="") { // 내용 검사 1 $Error = CheckCommonType($dest, $rsvTime); if ($Error) return $Error; // 내용 검사 2 //$URL=str_replace("http://","",$URL); if (strlen($URL)>50) return "URL이 50자가 넘었습니다"; switch (substr($dest,0,3)) { case '010': //20바이트 $msg=cut_char($msg,20); break; case '011': //80바이트 $msg=cut_char($msg,80); break; case '016': // 80바이트 $msg=cut_char($msg,80); break; case '017': // URL 포함 80바이트 $msg=cut_char($msg,80-strlen($URL)); break; case '018': // 20바이트 $msg=cut_char($msg,20); break; case '019': // 20바이트 $msg=cut_char($msg,20); break; default: return "아직 URL CallBack이 지원되지 않는 번호입니다"; break; } // 보낼 내용을 배열에 집어넣기 $dest = spacing($dest,11); $URL = spacing($URL,50); $callBack = spacing($callBack,11); $rsvTime = spacing($rsvTime,12); $msg = spacing($msg,80); $this->Data[] = '05173 '.$this->ID.$this->PWD.$dest.$callBack.$URL.$rsvTime.$msg; return ""; }
function Send () { $fp=@fsockopen(trim($this->SMS_Server),trim($this->SMS_Port)); if (!$fp) return false; set_time_limit(300);
## php4.3.10일경우 ## zend 최신버전으로 업해주세요.. ## 또는 122번째 줄을 $this->Data as $tmp => $puts 로 변경해 주세요.
foreach($this->Data as $puts) { $dest = substr($puts,26,11); fputs($fp,$puts); while(!$gets) { $gets=fgets($fp,30); } if (substr($gets,0,19)=="0223 00".$dest) $this->Result[]=$dest.":".substr($gets,19,10); else $this->Result[$dest]=$dest.":Error"; $gets=""; } fclose($fp); $this->Data=""; return true; } } ?>
|