1

URLリンクを介して文字列をSMSゲートウェイに送信し、それらからの応答を取得するスクリプトを実行しています。

彼らは、' 200 = SUCCESS ' またはエラーコードのコードとテキストで応答します: ' -100 = UNKNOWN ERROR ' , ' -101 = MISSING PARAMETER ' など.

私のバックエンド コードでは、エラー コードを含む SMS ゲートウェイからの返信メッセージを待ってループを維持し、成功または確認されるまで SMS ゲートウェイに文字列を再送信する方法を知りたいですか?

$link = "http://www.smsgateway.com/send.php?phoneno=".$phonenumber."&message=".urlencode($smsMessage);

次に、cURL を使用してこのリンクを送信し、応答を取得します。

$returned_content = using_cURL_function_to_get_response($link);

今、私の$returned_content
は 次 のよう に表示ます
:

次に、ループを実行して $returned_content を確認し、失敗/エラー コードの場合は、cURL 経由で文字列を SMS ゲートウェイに再度送信します。

if ($returned_content = 'ANY FAILURE / ERROR-CODE') {
    //redo cURL
    $link = "http://www.smsgateway.com/send.php?phoneno=".$phonenumber."&message=".urlencode($smsMessage);
    $returned_content = using_cURL_function_to_get_response($link);

    // Check the $returned_content
} else {
    // inform me the '200 = SUCCESS' via email
    mail($myEmail, $successfulSubjectt, $returned_content, $msgHeaders);
}

このループ部分についてはよくわかりません。誰か助けてください。

4

2 に答える 2

1

あなたがやろうとしていることはこれだと思います:

$link = "http://www.smsgateway.com/send.php?phoneno=".$phonenumber."&message=".urlencode($smsMessage);
while ($returned_content != '200 = SUCCESS')
{
    $returned_content = using_cURL_function_to_get_response($link);
}

mail($myEmail, $successfulSubjectt, $returned_content, $msgHeaders);

しかし、それは良い考えではありません。あなたが決して成功しないと仮定しますか?無限ループになります。自分がやろうとしていることを本当に考え直すべきです。

于 2012-05-21T04:35:17.717 に答える
0

では、SMS を送信しようとしてエラーが発生した場合、送信を再試行しますか? それはどのように機能しますか?

また、確かではありませんが、ターゲット サーバーはこれを DoS 攻撃と解釈する可能性があります。

やり方を考え直したほうがいいと思います。一部のユーザーが SMS を送信できるようにすることが目標である場合は、SMS の配信中にエラーが発生したため、後で試す必要があることを示すメッセージをユーザーに提示してはどうでしょうか?

于 2012-05-21T07:05:54.060 に答える