2016-08-31 3 views
0

전화 번호를 수집하고 URL을 통해 다른 스크립트로 보내는 스크립트가 있습니다. 이 스크립트는 미국 번호에 대해서는 잘 작동하지만 영국 번호로는 작동하지 않고 운이 없다고 생각했습니다. 어떤 도움을 주시면 감사하겠습니다.미국 전화 번호 만 사용하여 미국 및 국제 전화 번호 또는 영국 번호를 사용하는 스크립트를 변경하는 방법

이것은 내가 사용하고있는 코드입니다. philnash가 지적했듯이

<?php 
session_start(); 

    function post_to_sms($url,$post_string) 
    { 
    // post form to SMS API 

    $curl_result=$curl_err=''; 
    $ch = curl_init(); 
    curl_setopt($ch, CURLOPT_URL,$url); 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER,1); 
    curl_setopt($ch, CURLOPT_POST, 1); 
    curl_setopt($ch, CURLOPT_POSTFIELDS, $post_string); 

    // note - set HOST where your API resides 
    curl_setopt($ch, CURLOPT_HTTPHEADER, array("POST /cgi-bin/webscr HTTP/1.1", 
      "Content-Type: application/x-www-form-urlencoded", 
      "Content-Length: " . strlen($post_string), 
      "Host: yourdomain.com", 
      "Connection: close")); 

    curl_setopt($ch, CURLOPT_HEADER , 0); 
    curl_setopt($ch, CURLINFO_HEADER_OUT , 1); 
    curl_setopt($ch, CURLOPT_VERBOSE, 1); 
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); 
    curl_setopt($ch, CURLOPT_TIMEOUT, 30); 

    $curl_result = @curl_exec($ch); 

    // 2 lines of debug (comment for production) 
// print_r(curl_getinfo($ch)); 
// echo "<br /> error = " . $curl_err = curl_error($ch); 

    curl_close($ch); 

    return $curl_result; 
    } // end of CURL function 

    // URL for your SMS API 
    $url = "yourdomain.com/sms/sms_controlling.php"; 

    if(isset($_REQUEST['telNumber'])) 
    { 
    if(is_numeric($_REQUEST['telNumber']) && ($_REQUEST['telNumber'] > '1000000000') && ($_REQUEST['telNumber'] < '9999999999')) 
    { 

     // create array of form variables 
     // 'From' is input - 'To' and 'Body' is hard-coded 

     $post_data['From'] = $_REQUEST['telNumber']; 
     $post_data['To'] = "%2b17204447777"; //Enter Twilio Phone number 
     $post_data['Body'] = "keyword Here"; //Enter The Keyword to your SMS Campaign. 

     foreach ($post_data as $key => $value) 
     { 
      $post_items[] = $key . '=' . $value; 
     } 
     $post_string = implode ('&', $post_items); 

     post_to_sms($url, $post_string); 

    } else { 
     $_SESSION['errmessage'] = "Sorry. All 10 Digits of Phone Number (incl Area Code) are required."; 
    } 
    } 

    ?> 
+0

왜 이러한 if-condition을 사용하고 있는지 말해 줄 수 있습니까? '$ _REQUEST [ 'telNumber']> '1000000000'''$ _REQUEST [ 'telNumber'] < '9999999999'' – Titanoboa

+0

국제 전화 번호의 경우 국가 코드 접두사를 사용하고 있는지 확인해야합니다 (영국에서는 + 44). 그거하고 있니? Titanoboa가 물어 본 조건이 엉망 이냐? – philnash

+0

안녕하세요, 저는 프로그래머가 아니며 미국에서 작동하도록하는 방법을 알아낼 수있는 유일한 방법입니다. % 2b1을 +44로 변경하고 정보를 올바르게 전송하지만 응용 프로그램이 URL 문자열을 받으면 twilio로 전송하지 않습니다. 따라서 그것은 양식이 아닌 제 신청서 안에 있어야합니다. 응답 해 주셔서 감사합니다. – MichaelP

답변

0

, 영국 번호 당신이 단순히 44, 44로 번호 접두사를 설정해야 할 수 있습니다 사용하는 인터페이스에 따라 (44)을 시작하거나 번호 계획 표시를 설정해야 할 수도 있습니다. + 일반적으로 선행하는 국제 번호는 모바일 장치가 NPI를 설정하는 바로 가기이며 일반적으로 메시징 프로토콜과 관련이 없으므로 SMS 공급자에게 문의해야합니다.