제목 | 안녕하십니까,,SMS 라이브러리 에러 관련해서 문의 드려봅니다 | ||
---|---|---|---|
카테고리 | PHP | ||
글쓴이 | 신일 | 작성시각 | 2019/08/19 22:39:09 |
|
|||
어제 문의 글 올렸었는데 에러 코드를 말씀 안 드린거 같아서 죄송합니다;; 다시 문의 드려봅니다. 컨트롤러에서 SMS 라이브러리 호출시 발생하는 에러 같은데.... 뭐가 문제인지 실력이 딸려서;; 잘 모르겠습니다. 에러 코드는 아래와 같고, 문자는 정상적으로 들어오고는 있습니다. [ SMS 라이브러리 코드 ] class SMS { private $user_id = "kdke2578"; //카페24 sms호스팅 신청id private $secure_key = "96005b9e91141d111425878"; //카페24에서 발급받은 key private $sms_url = "https://sslsms.cafe24.com/sms_sender.php"; //전송요청 URL private $send_num = array("02", "1232", "0258"); //보내는번호 public function sendSMS($telnum, $message, $smstype = null, $subject = null) { $sms_url = $this->sms_url; $sms["user_id"] = base64_encode($this->user_id); $sms["secure"] = base64_encode($this->secure_key); $sms["msg"] = base64_encode(stripslashes($message)); if( $smstype == "L"){ $sms["subject"] = base64_encode($subject); } $sms["rphone"] = base64_encode($telnum); //받는번호 $sms["sphone1"] = base64_encode($this->send_num[0]); //보내는번호 앞자리 $sms["sphone2"] = base64_encode($this->send_num[1]); //보내는번호 중간자리 $sms["sphone3"] = base64_encode($this->send_num[2]); //보내는번호 뒷자리 $sms["rdate"] = base64_encode(""); $sms["rtime"] = base64_encode(""); $sms["mode"] = base64_encode("1"); $sms["returnurl"] = base64_encode(""); $sms["testflag"] = base64_encode(""); $sms["destination"] = strtr(base64_encode(""), "+/=", "-,"); $returnurl = ""; $sms["repeatFlag"] = base64_encode(""); $sms["repeatNum"] = base64_encode(""); $sms["repeatTime"] = base64_encode(""); $sms["smsType"] = base64_encode($smstype); $nointeractive = "1"; $host_info = explode("/", $sms_url); $host = $host_info[2]; $path = $host_info[3]; srand((double)microtime()*1000000); $boundary = "---------------------".substr(md5(rand(0,32000)),0,10); $header = "POST /".$path ." HTTP/1.0\r\n"; $header .= "Host: ".$host."\r\n"; $header .= "Content-type: multipart/form-data, boundary=".$boundary."\r\n"; foreach($sms AS $index => $value){ $data .= "--$boundary\r\n"; ////////////////이부분이 70번 줄입니다. $data .= "Content-Disposition: form-data; name=\"".$index."\"\r\n"; $data .= "\r\n".$value."\r\n"; $data .= "--$boundary\r\n"; }
[컨트롤러 코드] if ( $this->form_validation->run() == TRUE ) //폼 벨리데이션이 정상 통과 했다면 { //[1] 요청 $data = array( 'db_table_name' => 'interview' , //업데이트할 DB 테이블명 'give_mem_id' => $this->input->post('give_mem_id', TRUE) , //인터뷰요청 회원id ); $result = $this->interview_m->interview_invite_insert($data); //json으로 변환해서 뷰로 값 넘김 echo json_encode($result); //[2] 접수 일림 SMS 발송 if( $result == 'true' ) { $this->sms->sendSMS("01012345869", "sms발송테스트", "", ""); } }
|
|||
다음글 | explode() expects parameter 2 ... (3) | ||
이전글 | 안녕하십니까,, 궁금한게 있어 문의 글 남겨 봅니다 (4) | ||
변종원(웅파)
/
2019/08/20 08:29:33 /
추천
0
|
신일
/
2019/08/20 19:22:28 /
추천
0
웅파님, 감사합니다^^ 덕분에 잘 해결되었습니다~ 실력이 부족해서 머릿속이 복잡하다보니 쉬운 문제도 제대로 못보는 것 같습니다. 넓은 아량 부탁 드립니다^^ |
에러 메세지에 잘 나타나있네요.
70번째 라인에 $data 변수가 사용됐는데 미리 선언하지 않아서 생기는 경고입니다. 에러가 아니기에 경고메세지가 나타나지 않도록 하면 사용할 수 있지만 제일 좋은 것은 해당 라인 찾아서 윗쪽에 $data 변수를 미리 선언해주는 겁니다.
개발자라면 에러와 경고를 구분할 줄 알고 대처해야 합니다. 문제 발생시 나오는 화면의 메세지로 구글에서 검색하시면 거의 99% 해결 가능합니다.