boionfire81 Posted March 17, 2016 Posted March 17, 2016 Adding this Mod Advanced Property System & I had issues with 2 of the install instructions First a mysql issue with ALTER TABLE `properties_mod_user` ADD `upgrades` VARCHAR( 200 ) NOT NULL COMMENT ' returned invalid syntactic. My second issue is with this step: 4) Open ‘globals.php’ and find the following snippet of code $ir=$db->fetch_row($is); Now, directly under it, add the following; /* Properties mod - sniko */ include_once('property_mod_globals.php'); if(array_key_exists('hNAME', $ir)) { $ir['hNAME'] = ($ir['houseid_row'] > 0) ? get_house_name_by_row($ir['houseid_row']) : $ir['hNAME']; } My code prior global $jobquery, $housequery; if (isset($jobquery) && $jobquery) { $is = $db->query( "SELECT `u`.*, `us`.*, `j`.*, `jr`.* FROM `users` AS `u` INNER JOIN `userstats` AS `us` ON `u`.`userid`=`us`.`userid` LEFT JOIN `jobs` AS `j` ON `j`.`jID` = `u`.`job` LEFT JOIN `jobranks` AS `jr` ON `jr`.`jrID` = `u`.`jobrank` WHERE `u`.`userid` = {$userid} LIMIT 1"); } else if($housequery) { $is=$db->query( "SELECT u.*,us.*,h.* FROM users u LEFT JOIN userstats us ON u.userid=us.userid LEFT JOIN houses h ON h.hWILL=100 WHERE u.userid=$userid"); } else { $is = $db->query( "SELECT `u`.*, `us`.* FROM `users` AS `u` INNER JOIN `userstats` AS `us` ON `u`.`userid`=`us`.`userid` WHERE `u`.`userid` = {$userid} LIMIT 1"); } $ir = $db->fetch_row($is); if ($ir['force_logout'] != '0') { $db->query( "UPDATE `users` SET `force_logout` = 0 WHERE `userid` = {$userid}"); session_unset(); session_destroy(); $login_url = "http://{$domain}/login.php"; header("Location: {$login_url}"); exit; } Error on property_mod_staff.php PHP Warning: array_key_exists() expects parameter 2 to be array, null given (2) Action taken: Line executed: /home/public_html/property_mod_staff.php:24 Quote
Zettieee Posted March 17, 2016 Posted March 17, 2016 Damn. You seem to need alot of help... PHP Warning: array_key_exists() expects parameter 2 to be array, null given (2) is because the query didn't work. The query didn't work because you have ' at the end. Quote
boionfire81 Posted March 17, 2016 Author Posted March 17, 2016 removed the ' and got You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1 Quote
boionfire81 Posted March 17, 2016 Author Posted March 17, 2016 This is the only sql line that did not work. :/ Quote
G7470 Posted March 18, 2016 Posted March 18, 2016 Remove the COMMENT keyword on that sql line - that should do the trick with getting that statement to work. ~G7470 Quote
boionfire81 Posted March 18, 2016 Author Posted March 18, 2016 I handle the change manually. I cant write mysql yet but I have learned a bit for reading it. :) Quote
Djkanna Posted March 18, 2016 Posted March 18, 2016 Two options; 1( Close the COMMENT ): ALTER TABLE `properties_mod_user` ADD `upgrades` VARCHAR( 200 ) NOT NULL COMMENT ''; 2( Or Remove it): ALTER TABLE `properties_mod_user` ADD `upgrades` VARCHAR( 200 ) NOT NULL; Quote
boionfire81 Posted March 20, 2016 Author Posted March 20, 2016 So far my solution is populating the data into the standard users and house tables. I have no clue how to make one form disperse the same info into 2 tables. So adding houses seems to be fine. But I'm getting an error at editing. I can select the house, but then on loading next step I get A critical error has occurred, and page execution has stopped. Below are the details: 1064: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 3 Action taken: Attempted to execute query: SELECT `hWILL`, `hPRICE`, `hNAME` FROM `houses` WHERE `hID` = Here is the add & edit php code. function addhouse() { global $db, $ir, $c, $h, $userid; $price = (isset($_POST['price']) && is_numeric($_POST['price'])) ? abs(intval($_POST['price'])) : ''; $will = (isset($_POST['will']) && is_numeric($_POST['will'])) ? abs(intval($_POST['will'])) : ''; $name = (isset($_POST['name']) && preg_match( "/^[a-z0-9_]+([\\s]{1}[a-z0-9_]|[a-z0-9_])+$/i", $_POST['name'])) ? $db->escape(strip_tags(stripslashes($_POST['name']))) : ''; if ($price && $will && $name) { staff_csrf_stdverify('staff_addhouse', 'staff_houses.php?action=addhouse'); $q = $db->query( "SELECT COUNT(`hID`) FROM `houses` WHERE `hWILL` = {$will}"); if ($db->fetch_single($q) > 0) { $db->free_result($q); echo 'Sorry, you cannot have two houses with the same conscience.<br /> > <a href="staff_houses.php?action=addhouse">Go Back</a>'; die($h->endpage()); } $db->free_result($q); $db->query( "INSERT INTO `houses` VALUES(NULL, '$name', '$price', '$will', '$picture', '$description')"); stafflog_add('Created House ' . $name); echo 'House ' . $name . ' added to the game.<br /> > <a href="staff.php">Go Back</a>'; die($h->endpage()); } else { $csrf = request_csrf_html('staff_addhouse'); echo " <h3>Add House</h3> <hr /> <form action='staff_houses.php?action=addhouse' method='post'> Name: <input type='text' name='name' /><br /> Price: <input type='text' name='price' /><br /> Conscience: <input type='text' name='will' /><br /> Picture: <input type='text' name='picture'><br /> Description:<br /> <textarea name='description'></textarea> <br /> {$csrf} <input type='submit' value='Add House' /> </form> "; } } function edithouse() { global $db, $ir, $c, $h, $userid; if (!isset($_POST['step'])) { $_POST['step'] = '0'; } switch ($_POST['step']) { case "2": $price = (isset($_POST['price']) && is_numeric($_POST['price'])) ? abs(intval($_POST['price'])) : 0; $will = (isset($_POST['will']) && is_numeric($_POST['will'])) ? abs(intval($_POST['will'])) : 0; $_POST['id'] = (isset($_POST['id']) && is_numeric($_POST['id'])) ? abs(intval($_POST['id'])) : 0; if (!$price || !$will || !$_POST['id']) { echo 'Sorry, invalid input. <br />> <a href="staff_houses.php?action=edithouse">Go Back</a>'; die($h->endpage()); } staff_csrf_stdverify('staff_edithouse2', 'staff_houses.php?action=edithouse'); $q = $db->query( "SELECT `hID` FROM `houses` WHERE `hWILL` = {$will} AND `hID` != {$_POST['id']}"); if ($db->num_rows($q)) { echo 'Sorry, you cannot have two houses with the same conscience. <br />> <a href="staff_houses.php?action=edithouse">Go Back</a>'; die($h->endpage()); } $q = $db->query( 'SELECT `hWILL` FROM `houses` WHERE `hID` = ' . $_POST['ID']); if ($db->num_rows($q) == 0) { $db->free_result($q); echo 'Invalid house.<br /> > <a href="staff_houses.php?action=edithouse">Go Back</a>'; die($h->endpage()); } $oldwill = $db->fetch_single($q); $name = (isset($_POST['name']) && preg_match( "/^[a-z0-9_]+([\\s]{1}[a-z0-9_]|[a-z0-9_])+$/i", $_POST['name'])) ? $db->escape(strip_tags(stripslashes($_POST['name']))) : ''; if ($oldwill == 100 && $oldwill != $will) { echo 'Sorry, this house\'s conscience bar cannot be edited.<br /> > <a href="staff_houses.php?action=edithouse">Go Back</a>'; die($h->endpage()); } $db->query( "UPDATE `houses` SET `hWILL` = $will, `hPRICE` = $price, `hNAME` = '$name' WHERE `hID` = {$_POST['id']}"); $db->query( "UPDATE `users` SET `maxwill` = $will, `will` = LEAST(`will`, $will) WHERE `maxwill` = {$old['hWILL']}"); stafflog_add('Edited house ' . $name); echo 'House ' . $name . ' was edited successfully.<br /> > <a href="staff_houses.php?action=edithouse">Go Back</a>'; die($h->endpage()); break; case "1": $_POST['house'] = (isset($_POST['house']) && is_numeric($_POST['house'])) ? abs(intval($_POST['house'])) : 0; staff_csrf_stdverify('staff_edithouse1', 'staff_houses.php?action=edithouse'); $q = $db->query( "SELECT `hWILL`, `hPRICE`, `hNAME` FROM `houses` WHERE `hID` = {$_POST['id']}"); if ($db->num_rows($q) == 0) { $db->free_result($q); echo 'Invalid house.<br /> > <a href="staff_houses.php?action=edithouse">Go Back</a>'; die($h->endpage()); } $old = $db->fetch_row($q); $db->free_result($q); $csrf = request_csrf_html('staff_edithouse2'); echo " <h3>Editing a House</h3> <hr /> <form action='staff_houses.php?action=edithouse' method='post'> <input type='hidden' name='step' value='2' /> <input type='hidden' name='id' value='{$_POST['id']}' /> Name: <input type='text' name='name' value='{$old['hNAME']}' /> <br /> Price: <input type='text' name='price' value='{$old['hPRICE']}' /> <br /> Conscience: <input type='text' name='will' value='{$old['hWILL']}' /> <br /> Picture: <input type='text' name='picture' value='{$old['hWILL']}' /> <br /> Description:<br /> <textarea name='description'>{$old['hWILL']}</textarea> <br /> {$csrf} <input type='submit' value='Edit House' /> </form> "; break; default: $csrf = request_csrf_html('staff_edithouse1'); echo " <h3>Editing a House</h3> <hr /> <form action='staff_houses.php?action=edithouse' method='post'> <input type='hidden' name='step' value='1' /> House: " . house_dropdown(NULL, "house") . " <br /> {$csrf} <input type='submit' value='Edit House' /> </form> "; break; } } Quote
KyleMassacre Posted March 20, 2016 Posted March 20, 2016 It's because it's looking for $_POST['ID'] and not $_POST['id'] Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.