官术网_书友最值得收藏!

Sending a survey to your users

Ok, we've built the survey. Now how do we send it to our subscribers?

When you're ready to send the survey to your subscribers, this recipe will gather all active subscribers together, build the message, and send it.

It will then record the response for tracking so that we can see which answer is the popular choice or not.

Getting ready

The complete source code for this recipe can be found in the Chapter3/ folder.

How to do it...

Ok, let's send our survey to our users. In the same place you uploaded the files in the previous recipe, create a new file and name it send-survey.php:

<?php
include("config.php");
include("pdo.class.php");

include 'Services/Twilio.php';

$qid = $_GET['qid'];

$_SESSION['survey'] = $qid;     // we store the survey in session so we can retrieve it later

$pdo = Db::singleton();

$client = new Services_Twilio($accountsid, $authtoken);

$survey = $pdo->query("SELECT * FROM survey WHERE ID='{$qid}'");
if( $survey->rowCount() >= 1 ){
  $survey = $survey->fetch();
  $message = array();
  $message[] = $survey['question'];
  for($i = 1;$i<= 6;$i++){
    $k = 'answer'.$i;
    if( !empty($survey[ $k ]) ){
      $message[] = $i." - ".$survey[ $k ];
    }
  }
  $message[] = "Reply with the number corresponding to your answer";
  $cnt = count( $message );
  $res = $pdo->query("SELECT ID,phone_number FROM subscribers WHERE status='1'");
  while( $row = $res->fetch() ){
    $ph = $row['phone_number'];
    $i = 1;
    foreach($message as $m){
      $m = $m . "({$i} / {$cnt})";
      $smsg = $client->account->sms_messages->create( $fromNumber, $ph, $m );
      $sid = $smsg->sid;
      $sql = "INSERT INTO responses SET phone_number='{$ph}',question_id='{$qid}',sms_sid='{$sid}',answer=''";
      $pdo->exec( $sql );
      $i++;
    }
  }
}
?>
<h2>Survey sent!</h2>
<p><a href="survey-builder.php">Return to home</a></p>

How it works...

We can choose to send a survey from the survey builder we built in the first part of this chapter.

When we send it, it loads this recipe and grabs a list of subscribers. Each subscriber is sent a survey with a list of answers.

When we send the survey, each text message is given a unique session ID that we save in the Responses table alongside the receiver's phone number and the ID of the survey that was sent.

Each answer has a number in front of it; when your subscribers reply, they will send the number back to listener.php. This is then recorded in the database and we can build stats based on it.

主站蜘蛛池模板: 承德县| 沙洋县| 怀柔区| 金坛市| 奎屯市| 灵寿县| 宝鸡市| 招远市| 星子县| 塔城市| 柯坪县| 邵东县| 襄垣县| 六盘水市| 晋州市| 茶陵县| 河曲县| 葫芦岛市| 仁怀市| 深圳市| 新巴尔虎右旗| 富蕴县| 盘锦市| 丹巴县| 南漳县| 桐城市| 巩义市| 苍南县| 荥阳市| 安徽省| 文水县| 泽普县| 泸水县| 东乡县| 光山县| 赫章县| 曲沃县| 鸡东县| 宁波市| 台湾省| 太谷县|