From 5dbf799463812164876b913c5ccb39d0a03befbc Mon Sep 17 00:00:00 2001 From: Martin Ambrus Date: Sun, 22 Oct 2017 16:27:45 +0200 Subject: [PATCH] fix: installation will not be allowed if old data are still in DB --- README | 1 + install/include/oasis.php | 11 +++++++---- install/include/wdata.php | 6 ++++++ install/templates/field.tpl | 6 +++++- install/templates/oasis.tpl | 7 ++++++- todo.txt | 4 +--- 6 files changed, 26 insertions(+), 9 deletions(-) diff --git a/README b/README index d7095c8a..5b0f6cac 100644 --- a/README +++ b/README @@ -48,6 +48,7 @@ martinambrus changes: 36. fixed OK message in Admin when resetting All Players' PLUS 37. new config option to show Support messages in Admin's mailbox 38. new feature: allowing messages to be sent as Support from in-game when user is Admin + it's allowed in config +39. not allowing installation if old data are still in database to prevent multiple worlds generation and game misbehavior Shadowss changes: diff --git a/install/include/oasis.php b/install/include/oasis.php index 32e01f0c..da3048b0 100644 --- a/install/include/oasis.php +++ b/install/include/oasis.php @@ -9,10 +9,13 @@ include ("../../GameEngine/Database.php"); include ("../../GameEngine/Admin/database.php"); - - $conn = mysqli_connect(SQL_SERVER, SQL_USER, SQL_PASS); - mysqli_select_db($conn, SQL_DB); - + // check if we don't already have world data + $data_exist = $database->query_return("SELECT * FROM " . TB_PREFIX . "odata LIMIT 1"); + if (count($data_exist)) { + header("Location: ../index.php?s=6&err=1"); + exit; + } + $database->populateOasisdata(); $database->populateOasis(); $database->populateOasisUnits2(); diff --git a/install/include/wdata.php b/install/include/wdata.php index 628aa56c..76f2c137 100644 --- a/install/include/wdata.php +++ b/install/include/wdata.php @@ -12,6 +12,12 @@ include("database.php"); +// check if we don't already have world data +$data_exist = $database->query_return("SELECT * FROM " . TB_PREFIX . "wdata LIMIT 1"); +if (count($data_exist)) { + header("Location: ../index.php?s=3&err=1"); + exit; +} $xyas=(1+(2*WORLD_MAX)); diff --git a/install/templates/field.tpl b/install/templates/field.tpl index 812b2000..99e478f9 100644 --- a/install/templates/field.tpl +++ b/install/templates/field.tpl @@ -16,7 +16,11 @@ ################################################################################# if(isset($_GET['c']) && $_GET['c'] == 1) { -echo "
Error creating wdata. Check configuration or file.

"; +echo "


Error creating wdata. Check configuration or file.


"; +} + +if(isset($_GET['err']) && $_GET['err'] == 1) { +echo "


Existing World Data found in the database! Please clear your database before continuing.


"; } ?>
diff --git a/install/templates/oasis.tpl b/install/templates/oasis.tpl index 85d8f52e..a67cc68e 100644 --- a/install/templates/oasis.tpl +++ b/install/templates/oasis.tpl @@ -1,4 +1,4 @@ -

Existing Oasis data found in the database! Please clear the 'odata' table before continuing.


"; +} + ?>

diff --git a/todo.txt b/todo.txt index 6847cca8..97399541 100644 --- a/todo.txt +++ b/todo.txt @@ -1,6 +1,3 @@ -- cannot delete a single medal in admin -- add back buttons to Admin where there are not (like editing a user) -- disallow installation if existing data are in place, or world map would end up screwed and villages not showing (because there can be multiple villages/oasis generated for one square then) - quest image should glow red when new task is ready to be read (now it's only red when page is refreshed) - check aliance invitation accepting - apparently it doesn't work too well on first try? - normalize forum tables - varchar is used for numeric values and is joined with int field @@ -10,4 +7,5 @@ - should random attacks from Natars when building Wonder of the World be unit-less? - send forum replies in a forum where a user is active also to that user's mailbox - make an option for admin to be raidable (in profile?) +- finish parts in Admin that are unfinished (mostly delete -X- buttons and Alliance settings) - add PayPal listener to verify gold transactions imediatelly \ No newline at end of file