Пример #1
0
 public function call()
 {
     try {
         //sleep(10);
         if (!session_id()) {
             session_start();
         }
         $survey_code =& $_SESSION['survey_code'];
         $start_time =& $_SESSION['start_time'];
         $result_id =& $_SESSION['result_id'];
         $hex_data =& $_SESSION['h'];
         if (!$survey_code) {
             return new Answer('error', 'Survey code not defined', 'json');
         }
         $sr_obj = NULL;
         if ($result_id) {
             $survey_result_manager = new SurveyResultManager();
             $sr_obj = $survey_result_manager->getSurveyResult($result_id);
         }
         if (!$sr_obj) {
             $sr_obj = new SurveyResult($survey_code);
         }
         $sr_obj->setEmote($this->getArgument('emote'));
         $sr_obj->setIntensityLevel($this->getArgument('intensity_level'));
         $sr_obj->setVerbatim(trim($this->getArgument('verbatim')));
         $sr_obj->setIp($_SERVER['REMOTE_ADDR']);
         $sr_obj->setStartTime($start_time);
         $sr_obj->setEndTime(time());
         $sr_obj->save();
         $_SESSION['result_id'] = $sr_obj->getId();
         if ($hex_data && is_numeric('0x' . $hex_data)) {
             $decode_str = pack("H*", $hex_data);
             $parse_arr = array();
             parse_str($decode_str, $parse_arr);
             if (is_array($parse_arr) && count($parse_arr)) {
                 $data_ext = new SurveyUserDataExt($sr_obj->getId());
                 $data_ext->setValues($parse_arr);
                 $data_ext->save();
             }
         }
         return new Answer('ok', 'save', 'json');
     } catch (Exception $e) {
         return new Answer('error', $e->getMessage(), 'json');
     }
 }