1

Web フォームの送信を確認するテキスト メッセージを送信するために、Web ベースのショート メッセージング サービスにサインアップしました。私はCURLを使用しており、私のPHPコードは次のとおりです

$url = "http://www.mysmservice.co.uk/smsgateway/sendmsg.aspx?";
$param = "username=" . $username . "&password=" . $password . "&to=" . $diner_mobile . "&text=";
$smsmessage = "Hello, your table booking for " . $bookingdate . " at " . $booking_time . " is confirmed " , " Myrestaurant";

$ch = curl_init() or die(curl_error()); 
curl_setopt($ch, CURLOPT_POST,1); 
curl_setopt($ch, CURLOPT_POSTFIELDS,$param); 
curl_setopt($ch, CURLOPT_PORT, 80);
curl_setopt($ch, CURLOPT_URL,$url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
$data1=curl_exec($ch) or die(curl_error());
curl_close($ch); 

しかし、URL に何も投稿していないようです (mysmsservice は、ログが着信要求を示していないことを示しています)。ただし、次の URL にアクセスして適切な変数を置き換えると、サービスは機能します。

http://www.mysmsservice.co.uk/smsgateway/sendmsg.aspx?username=MyUsername &password=MyPassword&to=44771012345,44771054321&text=TheMessage

CURL 呼び出しを適切に使用しているかどうかわかりません。どんな助けでも大歓迎です。前もって感謝します。

4

2 に答える 2

1

すべてのパラメーターをアドレス バーに (GET パラメーターとして) 直接入力してページにアクセスすると機能するということは、POST 呼び出しを行う必要がないことを意味します。

その場合、cURL を使用する必要さえありません。

$base = 'http://www.mysmservice.co.uk/smsgateway/sendmsg.aspx';
$params = array(
    'username' => $username,
    'password' => $password,
    'to'       => $diner_mobile,
    'text'     => 'Your booking has been confirmed',
);
$url = sprintf('%s?%s', $base, http_build_query($params));
$response = file_get_contents($url);

ただし、POST を使用する必要がある場合は、これでうまくいくはずです。

$curl = curl_init();
curl_setopt_array($curl, array(
    CURLOPT_URL            => $base,
    CURLOPT_POST           => 1,
    CURLOPT_POSTFIELDS     => $params,
    CURLOPT_RETURNTRANSFER => 1,
    CURLOPT_SSL_VERIFYHOST => 0, // to avoid SSL issues if you need to fetch from https
    CURLOPT_SSL_VERIFYPEER => 0, // same ^
));
$response = curl_exec($curl);

注: 私は明らかにコードをテストしていませんが、私が通常 cURL リクエストを作成する方法です。

于 2013-02-11T16:54:35.400 に答える
0

メッセージが欠落している場合、SMS サービスは有効な要求がなかったと言っている可能性があります。ここでコードを見ると:

$param = "username=" . $username . "&password=" . $password . "&to=" . $diner_mobile . "&text=";

メッセージを $param に追加することはありません。ただし、変数 $smsmessage で作成します。コードを次のように変更する必要があります。

$smsmessage = "Hello, your table booking for " . $bookingdate . " at " . $booking_time . " is confirmed, " . " Myrestaurant";
$param = "username=" . $username . "&password=" . $password . "&to=" . $diner_mobile . "&text=" . $smsmessage;
于 2013-02-11T16:25:04.083 に答える