aboutsummaryrefslogtreecommitdiffstats
path: root/inc/savegame.inc
diff options
context:
space:
mode:
authorpiernov <piernov@piernov.org>2016-05-07 13:40:16 +0200
committerpiernov <piernov@piernov.org>2016-05-07 13:40:16 +0200
commit80f5826d1ac8f6d42866d5133c6f463943b96bab (patch)
tree1bfccff31d9be66bb9b791ed6dd942f638c32df9 /inc/savegame.inc
parent79cfbb29042fd60dfbc76a6810f75cce21d3ffe0 (diff)
parentec7771705d62d09fcd142c87f4941604f31c1d76 (diff)
downloadcandybox-80f5826d1ac8f6d42866d5133c6f463943b96bab.tar.gz
candybox-80f5826d1ac8f6d42866d5133c6f463943b96bab.tar.bz2
candybox-80f5826d1ac8f6d42866d5133c6f463943b96bab.tar.xz
candybox-80f5826d1ac8f6d42866d5133c6f463943b96bab.zip
Merge branch 'feat/savegame' into alexichi
Diffstat (limited to 'inc/savegame.inc')
-rw-r--r--inc/savegame.inc20
1 files changed, 20 insertions, 0 deletions
diff --git a/inc/savegame.inc b/inc/savegame.inc
index 1fa95b0..8772585 100644
--- a/inc/savegame.inc
+++ b/inc/savegame.inc
@@ -89,4 +89,24 @@ function loadSave() {
$_SESSION = array(); // drop current game
parseSave($xml, $_SESSION);
}
+
+function uploadSave() {
+ $fname = basename($_FILES['savefile']['name']);
+ $src = $_FILES['savefile']['tmp_name'];
+
+ libxml_use_internal_errors(true); // Ignore errors when loading the received file
+ $xml = simplexml_load_file($src);
+ libxml_use_internal_errors(false);
+ if(!$xml) {
+ sendError("upload_fail");
+ return;
+ }
+ $table = array();
+ parseSave($xml, $table); // Parse received file
+
+ $save = new SimpleXMLElement("<save/>");
+ genXML($table, $save); // Regenerate it
+ if($save->asXML(SAVEDIR."/".$fname)) sendInfo("upload_success", array($fname));
+ else sendError("upload_error");
+}
?>