$originalHandler = set_error_handler("libxml_error_handler"); //Create a new DomDocument object and load the XML data into it $xmldata = new DomDocument(); $xmldata->loadXML($data, LIBXML_NOBLANKS | LIBXML_NOCDATA | LIBXML_NOENT); //Remove whitespaces from the data purifyXML($xmldata->documentElement); //Restore the original error handler set_error_handler($originalHandler); //Retrieve the database configuration $dbconf = $config->Database; //Make sure the username is registered with this application $db = new Database($dbconf['host'], $dbconf['user'], $dbconf['pass'], $dbconf['name'], $dbconf['port']); //Store the data in the database $finaldata = $db->getSubjectFinalData($label); if ($finaldata['locked'] == '1') { $user = $db->searchUserByID($finaldata['aclID']); if (empty($user)) { $username = "******"; } else { $username = $user['username']; } $date = $finaldata['datetimeModified']; ajax_error("Oops! Subject {$label} has been already locked by {$username} at {$date}."); } else { $db->storeFinalForm($label, $_SESSION['aclID'], $xmldata->saveXML(), $lock); $result = array("success" => 1, "subject" => $label); } ajax_result($result); } catch (\Exception $e) { error_log('[OnlineQuestionnaire] ERROR: ' . $e->getMessage(), 0); ajax_error('Internal Server error. Please try again later.' . $e->getMessage());