rednspirited Posted March 16, 2021 Share Posted March 16, 2021 keep getting this error when i add items aslo getting this when i try editing i cant see the error can any one help me? Quote Link to comment Share on other sites More sharing options...
Uridium Posted March 16, 2021 Share Posted March 16, 2021 looking at the insert i can see a ,, after 750,,'1' that could be a starting point for you 2 Quote Link to comment Share on other sites More sharing options...
rednspirited Posted March 17, 2021 Author Share Posted March 17, 2021 thanks 🙂 will see what happens <?php /** * MCCodes Version 2.0.5b * Copyright (C) 2005-2012 Dabomstew * All rights reserved. * * Redistribution of this code in any form is prohibited, except in * the specific cases set out in the MCCodes Customer License. * * This code license may be used to run one (1) game. * A game is defined as the set of users and other game database data, * so you are permitted to create alternative clients for your game. * * If you did not obtain this code from MCCodes.com, you are in all likelihood * using it illegally. Please contact MCCodes to discuss licensing options * in this case. * * File: class/class_db_mysql.php * Signature: c43fdec3c66d23162f869ddcf5af599d * Date: Fri, 20 Apr 12 08:50:30 +0000 */ if (!defined('MONO_ON')) { exit; } if (!function_exists('error_critical')) { // Umm... die('<h1>Error</h1>' . 'Error handler not present'); } if (!extension_loaded('mysql')) { // dl doesn't work anymore, crash error_critical('Database connection failed', 'MySQL extension not present but required', 'N/A', debug_backtrace(false)); } class database { var $host; var $user; var $pass; var $database; var $persistent = 0; var $last_query; var $result; var $connection_id; var $num_queries = 0; var $start_time; function configure($host, $user, $pass, $database, $persistent = 0) { $this->host = $host; $this->user = $user; $this->pass = $pass; $this->database = $database; $this->persistent = $persistent; return 1; //Success. } function connect() { if (!$this->host) { $this->host = "localhost"; } if (!$this->user) { $this->user = "root"; } if ($this->persistent) { $conn = mysql_pconnect($this->host, $this->user, $this->pass); } else { $conn = mysql_connect($this->host, $this->user, $this->pass, true); } if ($conn === false) { error_critical('Database connection failed', mysql_errno() . ': ' . mysql_error(), 'Attempted to connect to database on ' . $this->host, debug_backtrace(false)); } // @overridecharset mysql $this->connection_id = $conn; if (!mysql_select_db($this->database, $this->connection_id)) { error_critical('Database connection failed', mysql_errno($conn) . ': ' . mysql_error($conn), 'Attempted to select database: ' . $this->database, debug_backtrace(false)); } return $this->connection_id; } function disconnect() { if ($this->connection_id) { mysql_close($this->connection_id); $this->connection_id = 0; return 1; } else { return 0; } } function change_db($database) { if (!mysql_select_db($database, $this->connection_id)) { error_critical('Database change failed', mysql_errno($this->connection_id) . ': ' . mysql_error($this->connection_id), 'Attempted to select database: ' . $database, debug_backtrace(false)); } $this->database = $database; } function query($query) { $this->last_query = $query; $this->num_queries++; $this->result = mysql_query($this->last_query, $this->connection_id); if ($this->result === false) { error_critical('Query failed', mysql_errno($this->connection_id) . ': ' . mysql_error($this->connection_id), 'Attempted to execute query: ' . nl2br($this->last_query), debug_backtrace(false)); } return $this->result; } function fetch_row($result = 0) { if (!$result) { $result = $this->result; } return mysql_fetch_assoc($result); } function num_rows($result = 0) { if (!$result) { $result = $this->result; } return mysql_num_rows($result); } function insert_id() { return mysql_insert_id($this->connection_id); } function fetch_single($result = 0) { if (!$result) { $result = $this->result; } return mysql_result($result, 0, 0); } function easy_insert($table, $data) { $query = "INSERT INTO `$table` ("; $i = 0; foreach ($data as $k => $v) { $i++; if ($i > 1) { $query .= ", "; } $query .= $k; } $query .= ") VALUES("; $i = 0; foreach ($data as $k => $v) { $i++; if ($i > 1) { $query .= ", "; } $query .= "'" . $this->escape($v) . "'"; } $query .= ")"; return $this->query($query); } function escape($text) { return mysql_real_escape_string($text, $this->connection_id); } function affected_rows() { return mysql_affected_rows($this->connection_id); } function free_result($result) { return mysql_free_result($result); } } i cant seem to find a thing wrong with the code here is the file it is referring to Quote Link to comment Share on other sites More sharing options...
Uridium Posted March 17, 2021 Share Posted March 17, 2021 paste your staff_items.php just the NEW ITEM and EDIT ITEM parts Quote Link to comment Share on other sites More sharing options...
rednspirited Posted March 17, 2021 Author Share Posted March 17, 2021 function new_item_submit() { global $db, $ir, $c, $h; if ($ir['user_level'] != 2) { echo 'You cannot access this area.<br /> > <a href="staff.php">Go Back</a>'; die($h->endpage()); } staff_csrf_stdverify('staff_newitem', 'staff_items.php?action=newitem'); $itmname = (isset($_POST['itmname']) && preg_match( "/^[a-z0-9_]+([\\s]{1}[a-z0-9_]|[a-z0-9_])+$/i", $_POST['itmname'])) ? $db->escape(strip_tags(stripslashes($_POST['itmname']))) : ''; $itmdesc = (isset($_POST['itmdesc'])) ? $db->escape(strip_tags(stripslashes($_POST['itmdesc']))) : ''; $weapon = (isset($_POST['weapon']) && is_numeric($_POST['weapon'])) ? abs(intval($_POST['weapon'])) : 0; $armor = (isset($_POST['armor']) && is_numeric($_POST['armor'])) ? abs(intval($_POST['armor'])) : 0; $_POST['itmtype'] = (isset($_POST['itmtype']) && is_numeric($_POST['itmtype'])) ? abs(intval($_POST['itmtype'])) : ''; $_POST['itmbuyprice'] = (isset($_POST['itmbuyprice']) && is_numeric($_POST['itmbuyprice'])) ? abs(intval($_POST['itmbuyprice'])) : ''; $_POST['itmsellprice'] = (isset($_POST['itmsellprice']) && is_numeric($_POST['itmsellprice'])) ? abs(intval($_POST['itmsellprice'])) : ''; if (empty($itmname) || empty($itmdesc) || empty($_POST['itmtype']) || empty($_POST['itmbuyprice']) || empty($_POST['itmsellprice'])) $itmbuy = ($_POST['itmbuyable'] == 'on') ? 1 : 0; $effects = array(); for ($i = 1; $i <= 3; $i++) { $efxkey = "effect{$i}"; $_POST[$efxkey . 'stat'] = (isset($_POST[$efxkey . 'stat']) && in_array($_POST[$efxkey . 'stat'], array('energy', 'will', 'brave', 'hp', 'strength', 'agility', 'guard', 'labour', 'IQ', 'hospital', 'jail', 'money', 'crystals', 'cdays', 'bankmoney', 'cybermoney', 'crimexp'))) ? $_POST[$efxkey . 'stat'] : 'energy'; $_POST[$efxkey . 'dir'] = (isset($_POST[$efxkey . 'dir']) && in_array($_POST[$efxkey . 'dir'], array('pos', 'neg'))) ? $_POST[$efxkey . 'dir'] : 'pos'; $_POST[$efxkey . 'type'] = (isset($_POST[$efxkey . 'type']) && in_array($_POST[$efxkey . 'type'], array('figure', 'percent'))) ? $_POST[$efxkey . 'type'] : 'figure'; $_POST[$efxkey . 'amount'] = (isset($_POST[$efxkey . 'amount']) && is_numeric($_POST[$efxkey . 'amount'])) ? abs(intval($_POST[$efxkey . 'amount'])) : 0; $_POST[$efxkey . 'on'] = (isset($_POST[$efxkey . 'on']) && in_array($_POST[$efxkey . 'on'], array('1', '0'))) ? $_POST[$efxkey . 'on'] : 0; $effects[$i] = $db->escape( serialize( array("stat" => $_POST[$efxkey . 'stat'], "dir" => $_POST[$efxkey . 'dir'], "inc_type" => $_POST[$efxkey . 'type'], "inc_amount" => abs( (int) $_POST[$efxkey . 'amount'])))); } $m = $db->query( "INSERT INTO `items` VALUES(NULL, {$_POST['itmtype']}, '$itmname', '$itmdesc', {$_POST['itmbuyprice']}, {$_POST['itmsellprice']}, $itmbuy, '{$_POST['effect1on']}', '{$effects[1]}', '{$_POST['effect2on']}', '{$effects[2]}', '{$_POST['effect3on']}', '{$effects[3]}', $weapon, $armor)"); stafflog_add("Created item {$_POST['itmname']}"); echo 'The ' . $_POST['itmname'] . ' Item was added to the game.<br /> > <a href="staff_items.php?action=newitem">Go Home</a>'; die($h->endpage()); } function edit_item_begin() { global $db, $ir, $c, $h, $userid; if ($ir['user_level'] != 2) { echo 'You cannot access this area.<br />> <a href="staff.php">Go Back</a>'; die($h->endpage()); } $csrf = request_csrf_html('staff_edititem1'); echo " <h3>Editing Item</h3> You can edit any aspect of this item.<br /> <form action='staff_items.php?action=edititemform' method='post'> Item: " . item_dropdown(NULL, 'item') . " <br /> {$csrf} <input type='submit' value='Edit Item' /> </form> "; } function edit_item_form() { global $db, $ir, $c, $h; if ($ir['user_level'] != 2) { echo 'You cannot access this area.<br /> > <a href="staff.php">Go Back</a>'; die($h->endpage()); } staff_csrf_stdverify('staff_edititem1', 'staff_items.php?action=edititem'); $_POST['item'] = (isset($_POST['item']) && is_numeric($_POST['item'])) ? abs(intval($_POST['item'])) : ''; if (empty($_POST['item'])) { echo 'Invalid Item.<br /> > <a href="staff_items.php?action=killitem">Go Back</a>'; die($h->endpage()); } $d = $db->query( "SELECT * FROM `items` WHERE `itmid` = {$_POST['item']}"); if ($db->num_rows($d) == 0) { $db->free_result($d); echo 'Item doesn\'t seem to exist.<br /> > <a href="staff_items.php?action=edititem">Go Back</a>'; die($h->endpage()); } $itemi = $db->fetch_row($d); $db->free_result($d); $csrf = request_csrf_html('staff_edititem2'); $itmname = addslashes($itemi['itmname']); $itmdesc = addslashes($itemi['itmdesc']); echo " <h3>Editing Item</h3> <form action='staff_items.php?action=edititemsub' method='post'> <input type='hidden' name='itmid' value='{$_POST['item']}' /> Item Name: <input type='text' name='itmname' value='{$itmname}' /> <br /> Item Desc.: <input type='text' name='itmdesc' value='{$itmdesc}' /> <br /> Item Type: " . itemtype_dropdown(NULL, 'itmtype', $itemi['itmtype']) . " <br /> Item Buyable: <input type='checkbox' name='itmbuyable' " . (($itemi['itmbuyable']) ? "checked='checked'" : '') . " /> <br /> Item Price: <input type='text' name='itmbuyprice' value='{$itemi['itmbuyprice']}' /> <br /> Item Sell Value: <input type='text' name='itmsellprice' value='{$itemi['itmsellprice']}' /> <hr /> <b>Usage Form</b> <hr /> "; $stats = array("energy" => "Energy", "will" => "Will", "brave" => "Brave", "hp" => "Health", "strength" => "Strength", "agility" => "Agility", "guard" => "Guard", "labour" => "Labour", "IQ" => "IQ", "hospital" => "Hospital Time", "jail" => "Jail Time", "money" => "Money", "crystals" => "Crystals", "cdays" => "Education Days Left", "bankmoney" => "Bank money", "cybermoney" => "Cyber money", "crimexp" => "Crime XP"); for ($i = 1; $i <= 3; $i++) { if (!empty($itemi["effect" . $i])) { $efx = unserialize($itemi["effect" . $i]); } else { $efx = array("inc_amount" => 0); } $switch1 = ($itemi['effect' . $i . '_on'] > 0) ? " checked='checked'" : ""; $switch2 = ($itemi['effect' . $i . '_on'] > 0) ? "" : " checked='checked'"; echo " <b><u>Effect {$i}</u></b> <br /> On? <input type='radio' name='effect{$i}on' value='1'$switch1 /> Yes <input type='radio' name='effect{$i}on' value='0'$switch2 /> No <br /> Stat: <select name='effect{$i}stat' type='dropdown'> "; foreach ($stats as $k => $v) { echo ($k == $efx['stat']) ? '<option value="' . $k . '" selected="selected">' . $v . '</option>' : '<option value="' . $k . '">' . $v . '</option>'; } $str = ($efx['dir'] == "neg") ? '<option value="pos">Increase</option> <option value="neg" selected="selected">Decrease</option>' : '<option value="pos" selected="selected">Increase</option> <option value="neg">Decrease</option>'; $str2 = ($efx['inc_type'] == "percent") ? '<option value="figure">Value</option> <option value="percent" selected="selected">Percent</option>' : '<option value="figure" selected="selected">Value</option> <option value="percent">Percent</option>'; echo " </select> Direction: <select name='effect{$i}dir' type='dropdown'> {$str} </select> <br /> Amount: <input type='text' name='effect{$i}amount' value='{$efx['inc_amount']}' /> <select name='effect{$i}type' type='dropdown'>{$str2}</select> <hr /> "; } echo " <b>Combat Usage</b> <br /> Weapon Power: <input type='text' name='weapon' value='{$itemi['weapon']}' /> <br /> Armor Defense: <input type='text' name='armor' value='{$itemi['armor']}' /> <hr /> {$csrf} <input type='submit' value='Edit Item' /> </form> "; } function edit_item_sub() { global $db, $ir, $c, $h, $userid; if ($ir['user_level'] != 2) { echo 'You cannot access this area.<br />> <a href="staff.php">Go Back</a>'; die($h->endpage()); } staff_csrf_stdverify('staff_edititem2', 'staff_items.php?action=edititem'); $itmname = (isset($_POST['itmname']) && preg_match( "/^[a-z0-9_]+([\\s]{1}[a-z0-9_]|[a-z0-9_])+$/i", $_POST['itmname'])) ? $db->escape(strip_tags(stripslashes($_POST['itmname']))) : ''; $itmdesc = (isset($_POST['itmdesc'])) ? $db->escape(strip_tags(stripslashes($_POST['itmdesc']))) : ''; $weapon = (isset($_POST['weapon']) && is_numeric($_POST['weapon'])) ? abs(intval($_POST['weapon'])) : 0; $armor = (isset($_POST['armor']) && is_numeric($_POST['armor'])) ? abs(intval($_POST['armor'])) : 0; $_POST['itmtype'] = (isset($_POST['itmtype']) && is_numeric($_POST['itmtype'])) ? abs(intval($_POST['itmtype'])) : ''; $_POST['itmbuyprice'] = (isset($_POST['itmbuyprice']) && is_numeric($_POST['itmbuyprice'])) ? abs(intval($_POST['itmbuyprice'])) : ''; $_POST['itmsellprice'] = (isset($_POST['itmsellprice']) && is_numeric($_POST['itmsellprice'])) ? abs(intval($_POST['itmsellprice'])) : ''; $_POST['itmid'] = (isset($_POST['itmid']) && is_numeric($_POST['itmid'])) ? abs(intval($_POST['itmid'])) : ''; if (empty($itmname) || empty($itmdesc) || empty($_POST['itmtype']) || empty($_POST['itmbuyprice']) || empty($_POST['itmsellprice']) || empty($_POST['itmid'])) $q = $db->query( 'SELECT COUNT(`itmid`) FROM `items` WHERE `itmid` = ' . $_POST['itmid']); if ($db->fetch_single($q) == 0) { $db->free_result($q); echo 'Invalid item.<br /> > <a href="staff_items.php?action=edititem">Go Back</a>'; die($h->endpage()); } $db->free_result($q); $itmbuy = ($_POST['itmbuyable'] == 'on') ? 1 : 0; $effects = array(); for ($i = 1; $i <= 3; $i++) { $efxkey = "effect{$i}"; $_POST[$efxkey . 'stat'] = (isset($_POST[$efxkey . 'stat']) && in_array($_POST[$efxkey . 'stat'], array('energy', 'will', 'brave', 'hp', 'strength', 'agility', 'guard', 'labour', 'IQ', 'hospital', 'jail', 'money', 'crystals', 'cdays', 'bankmoney', 'cybermoney', 'crimexp'))) ? $_POST[$efxkey . 'stat'] : 'energy'; $_POST[$efxkey . 'dir'] = (isset($_POST[$efxkey . 'dir']) && in_array($_POST[$efxkey . 'dir'], array('pos', 'neg'))) ? $_POST[$efxkey . 'dir'] : 'pos'; $_POST[$efxkey . 'type'] = (isset($_POST[$efxkey . 'type']) && in_array($_POST[$efxkey . 'type'], array('figure', 'percent'))) ? $_POST[$efxkey . 'type'] : 'figure'; $_POST[$efxkey . 'amount'] = (isset($_POST[$efxkey . 'amount']) && is_numeric($_POST[$efxkey . 'amount'])) ? abs(intval($_POST[$efxkey . 'amount'])) : 0; $_POST[$efxkey . 'on'] = (isset($_POST[$efxkey . 'on']) && in_array($_POST[$efxkey . 'on'], array('1', '0'))) ? $_POST[$efxkey . 'on'] : 0; $effects[$i] = $db->escape( serialize( array("stat" => $_POST[$efxkey . 'stat'], "dir" => $_POST[$efxkey . 'dir'], "inc_type" => $_POST[$efxkey . 'type'], "inc_amount" => abs( (int) $_POST[$efxkey . 'amount'])))); } $db->query( 'UPDATE `items` SET `itmtype` = ' . $_POST['itmtype'] . ',`itmname` = "' . $itmname . '",`itmdesc` = "' . $itmdesc . '",`itmbuyprice` = ' . $_POST['itmbuyprice'] . ',`itmsellprice` = ' . $_POST['itmsellprice'] . ',`itmbuyable` = ' . $itmbuy . ',`effect1_on` = "' . $_POST['effect1on'] . '",`effect1` = "' . $effects[1] . '",`effect2_on` = "' . $_POST['effect2on'] . '",`effect2` = "' . $effects[2] . '",`effect3_on` = "' . $_POST['effect3on'] . '",`effect3` = "' . $effects[3] . '",`weapon` = ' . $weapon . ',`armor` = ' . $armor . ' WHERE `itmid` = ' . $_POST['itmid']); stafflog_add("Edited item {$_POST['itmname']}"); echo 'The ' . $_POST['itmname'] . ' Item was edited successfully.<br /> > <a href="staff.php">Go Home</a>'; die($h->endpage()); } think thats all you need Quote Link to comment Share on other sites More sharing options...
Uridium Posted March 18, 2021 Share Posted March 18, 2021 (edited) im the same i cant see an error HOWEVER what you need to do now is a bit of detective work on the INSERT INTO count from the insert how many is being INSERTED i can see there are 15 now goto you phpmyadmin ITEMS table and count those should be 15 or 16 (16 incase ID isnt being inserted.. so now all we do is this its a pain but for a Beginner it does work.... ALTER this $db->query( "INSERT INTO `items` VALUES(NULL, {$_POST['itmtype']}, '$itmname', '$itmdesc', {$_POST['itmbuyprice']}, {$_POST['itmsellprice']}, $itmbuy, '{$_POST['effect1on']}', '{$effects[1]}', '{$_POST['effect2on']}', '{$effects[2]}', '{$_POST['effect3on']}', '{$effects[3]}', $weapon, $armor)"); TO this $db->query( "INSERT INTO `items` VALUES(NULL, '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12', '13', '14', '15')"); That should INSERT all 15 into the ITEMS table cos the data is already there IF it does then we know that there is an issue with the INSERT now all we have to do is 1 by 1 add things back and see which one it breaks on..... Example $db->query( "INSERT INTO `items` VALUES(NULL, '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12', '13', '14', $armor)"); AND $db->query( "INSERT INTO `items` VALUES(NULL, '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12', '13', $weapon, $armor)"); And so on till the script breaks.. NOTE remember when you do this create a new item for each don't use same if its being INSERTED Edited March 18, 2021 by Uridium Added bits 1 Quote Link to comment Share on other sites More sharing options...
Magictallguy Posted March 18, 2021 Share Posted March 18, 2021 $itmbuy isn't set because it's part of a braceless if statement, resulting in gap between itmsellvalue and effect1. Simply add a little logic to handle the empty inputs Offending snippet: if (empty($itmname) || empty($itmdesc) || empty($_POST['itmtype']) || empty($_POST['itmbuyprice']) || empty($_POST['itmsellprice'])) $itmbuy = ($_POST['itmbuyable'] == 'on') ? 1 : 0; 1 1 Quote Link to comment Share on other sites More sharing options...
rednspirited Posted March 18, 2021 Author Share Posted March 18, 2021 Will try when I'm off work funny thing is it added items then just stopped doing it Quote Link to comment Share on other sites More sharing options...
CrazyElk Posted March 19, 2021 Share Posted March 19, 2021 10 hours ago, rednspirited said: Will try when I'm off work funny thing is it added items then just stopped doing it That suggests is not so much a coding error but something else. Have you changed the php version recently or if you using your hosts default version, have they changed it? Quote Link to comment Share on other sites More sharing options...
rednspirited Posted March 19, 2021 Author Share Posted March 19, 2021 it was coding got it fixed by adding in a small bit of logic 🙂 5 minutes ago, CrazyElk said: That suggests is not so much a coding error but something else. Have you changed the php version recently or if you using your hosts default version, have they changed it? the php version was what i checked first Quote Link to comment Share on other sites More sharing options...
CrazyElk Posted March 19, 2021 Share Posted March 19, 2021 (edited) 4 minutes ago, rednspirited said: it was coding got it fixed by adding in a small bit of logic 🙂 Well there ya go, good job ... I would have suggested that but it didn't ummm, seem logical at the time. 😂 Seems odd that it was working and then without reason it stopped working and then required some additional logic, hmmm. Nothing like a good mystery I always say. Edited March 19, 2021 by CrazyElk 1 Quote Link to comment Share on other sites More sharing options...
rednspirited Posted March 19, 2021 Author Share Posted March 19, 2021 1 minute ago, CrazyElk said: Well there ya go, good job ... I would have suggested that but it didn't ummm, seem logical at the time. 😂 🤣 nice word play Quote Link to comment Share on other sites More sharing options...
CrazyElk Posted March 19, 2021 Share Posted March 19, 2021 1 minute ago, rednspirited said: 🤣 nice word play And what a spirited reply, its kind of you to say. 🙂 Quote Link to comment Share on other sites More sharing options...
rednspirited Posted March 19, 2021 Author Share Posted March 19, 2021 🙂 a quick witty reply 🤣 1 Quote Link to comment Share on other sites More sharing options...
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.