From 40b0d42dee76bc62517801aa746371a9ce2895a1 Mon Sep 17 00:00:00 2001 From: piernov Date: Wed, 4 May 2016 14:26:57 +0200 Subject: Now possible to add format to sendMessage() strings --- inc/messages.inc | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) (limited to 'inc') diff --git a/inc/messages.inc b/inc/messages.inc index 4938fa1..7b952b8 100644 --- a/inc/messages.inc +++ b/inc/messages.inc @@ -14,18 +14,19 @@ $messages = array( "gamesave_delete_success" => "Game save successfully removed from server", ); -function sendMessage($type, $msg) { +function sendMessage($type, $msg, $fmt = null) { global $messages; $text = $messages[$msg]; + if($fmt) $text = vsprintf($text, $fmt); echo json_encode(array($type => $text)); } -function sendError($msg) { - sendMessage("error", $msg); +function sendError($msg, $fmt = null) { + sendMessage("error", $msg, $fmt); } -function sendInfo($msg) { - sendMessage("info", $msg); +function sendInfo($msg, $fmt = null) { + sendMessage("info", $msg, $fmt); } ?> -- cgit v1.2.3-54-g00ecf From 9ce1da5147b3df01812687562faca80623b27a38 Mon Sep 17 00:00:00 2001 From: piernov Date: Wed, 4 May 2016 14:27:35 +0200 Subject: Receive uploaded savegame from PHP --- inc/messages.inc | 3 +++ inc/savegame.inc | 20 ++++++++++++++++++++ 2 files changed, 23 insertions(+) (limited to 'inc') diff --git a/inc/messages.inc b/inc/messages.inc index 7b952b8..d08331a 100644 --- a/inc/messages.inc +++ b/inc/messages.inc @@ -12,6 +12,9 @@ $messages = array( "gamesave_not_found" => "Couldn't find the specified save file.", "gamesave_delete_fail" => "Couldn't delete the specified save file.", "gamesave_delete_success" => "Game save successfully removed from server", + + "upload_fail" => "Could not upload save file.", + "upload_success" => "Save file uploaded successfully: %s", ); function sendMessage($type, $msg, $fmt = null) { 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(""); + genXML($table, $save); // Regenerate it + if($save->asXML(SAVEDIR."/".$fname)) sendInfo("upload_success", array($fname)); + else sendError("upload_error"); +} ?> -- cgit v1.2.3-54-g00ecf