2

サードパーティの SMS ゲートウェイを使用して、見込み客が Web ページで問い合わせフォームを送信したときにクライアントにテキスト メッセージを送信しています。私は自動応答システムに Aweber を使用しています。Aweber は見込み客データを含むクエリ文字列を送信します。これは私が収集してクライアントに送信し、テキスト メッセージと共に彼の携帯電話に送信します。

私はすべてが働いています。ただし、クライアントが同じセッション内で同じプロスペクトから複数のテキスト メッセージを受信しないようにする必要があります。これは、ブラウザの更新または [戻る] ボタンのクリックによって引き起こされます。

この問題を除いて、私が使用しているコードは次のとおりです。

   $name      = $_GET['name'];
   $email     = $_GET['email'];
   $address   = $_GET['address'];
   $phone     = $_GET['phone'];
   $phone_sms = preg_replace('/^1|\D/', "", $phone);

   $message   = "$name, $email, just submitted an inquiry for $address";

   $from      = "1212121212";   // Ph# txt message is received from
   $to        = "$phone_sms";   // Ph# txt message is sent to

   $url       = 'http://domain.com/of/api';

   $fields = array(
     'from'     =>urlencode($from),
     'to'       =>urlencode($to),
     'message'  =>urlencode($message),
   );

   foreach($fields as $key=>$value) { $fields_string .= $key.'='.$value.'&'; }
   rtrim($fields_string,'&');

   $ch = curl_init();

   curl_setopt($ch,CURLOPT_URL,$url);
   curl_setopt($ch,CURLOPT_POST,count($fields));
   curl_setopt($ch,CURLOPT_POSTFIELDS,$fields_string);

   $result = curl_exec($ch);

   curl_close($ch);

ご協力ありがとうございました。

4

2 に答える 2

3

Location投稿したスクリプトの最後に「成功」​​ページにリダイレクトするヘッダーを送信すると、戻るボタンでページが 2 回読み込まれることはありません。

試す:

// ... your code from the question
curl_close($ch);

header('Location: /sent.php');
exit;

次にsent.php、メッセージが送信されたことを知らせる確認ページを表示します。リクエストから特定のデータを送信する必要がある場合は、リダイレクトする前にそれをセッションに追加し、そのデータをセッションから読み取りますsent.php

リダイレクトを送信することにより、戻るボタンを使用してナビゲートするときに、ブラウザが同じデータを再投稿しようとすることはありません。また、(フォームの送信後に) ページを更新しても、データが再投稿されないようにします。

于 2012-07-31T23:36:24.393 に答える
0

クッキーベースにできますか?

だから基本的に

if(cookie =='') { /*do the stuff - AND set the cookie*/}

if(cookie !=='') { /* don't do the stuff */ }
于 2012-07-31T23:38:32.370 に答える