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'); } }