diff --git a/functions.php b/functions.php index 01abf16..6086d5d 100644 --- a/functions.php +++ b/functions.php @@ -45,7 +45,7 @@ $userslots = array('sergi', 'kulon', 'perchi', 'weap', 'bron', 'r1', 'r2', 'r3', function getuserdata($id = 0) { - if (!$id) $id = filter_input(INPUT_SESSION, 'uid'); + if (!$id) $id = isset($_SESSION['uid'])?$_SESSION['uid']:NULL; // Хорошее решение проверок, кстати. if (!$id) return array(); $rec = db::c()->query('SELECT `hp`, `maxhp`, `fullhptime`, `battle` FROM `users` WHERE `id` = "?s"', $id)->fetch_assoc(); if ($rec['hp'] < $rec['maxhp'] && time() > $rec['fullhptime'] && !$rec['battle'] && ($rec['hp'] > 0)) { @@ -1989,8 +1989,7 @@ function echoscroll($slot) $script = 'main'; } - if ($user['battle'] > 0) - $bat = mysql_fetch_array(mysql_query("SELECT `id`, `magic` FROM `battle` WHERE `id` = '{$user['battle']}' LIMIT 1")); + if ($user['battle'] > 0) $bat = mysql_fetch_array(mysql_query("SELECT `id`, `magic` FROM `battle` WHERE `id` = '{$user['battle']}' LIMIT 1")); $all_magic = unserialize($bat['magic']); $dress = mysql_fetch_array(mysql_query("SELECT `id`, `magic`, `name`, `img`, `duration`, `maxdur` FROM `inventory` WHERE `id` = '{$user[$slot]}' LIMIT 1")); $need_charge = mysql_fetch_array(mysql_query("SELECT `needcharge` FROM `magic` WHERE `id` = '{$dress['magic']}' LIMIT 1")); @@ -2269,18 +2268,21 @@ function regenhp($us, $update = 1) return $us['hp']; } -function showinf_pers($id, $pas = 0, $battle = 0, $me = 0, $main = false) +function showinf_pers($id, $pas = 0, $battle = 0, $me = 0, $main = false) //FIXME 37 запросов! ТРИДЦАТЬ СЕМЬ! Чтобы отобразить предметы на персонаже. { global $rooms; $r = ''; - if ($id > _BOTSEPARATOR_) { - $bots = mysql_fetch_array(mysql_query('SELECT * FROM `bots` WHERE `id` = "' . (int)$id . '" LIMIT 1')); - $id = $bots['prototype']; - $user = mysql_fetch_array(mysql_query("SELECT * FROM `users` WHERE `id` = '{$id}' LIMIT 1")); - $user['login'] = $bots['name']; - $user['hp'] = $bots['hp']; + if ($id > _BOTSEPARATOR_) { //FIXME Оно как бы и работает, но два тяжёлющих запроса в самые крупные базы, чтобы подменить два значения... +// $bots = mysql_fetch_array(mysql_query('SELECT * FROM `bots` WHERE `id` = "' . (int)$id . '" LIMIT 1')); +// $id = $bots['prototype']; +// $user = mysql_fetch_array(mysql_query("SELECT * FROM `users` WHERE `id` = '{$id}' LIMIT 1")); +// $user = db::c()->query('SELECT * FROM `users` WHERE `id` = (SELECT `prototype` FROM `bots` WHERE `bots`.`id` = ?i)', $id)->fetch_assoc(); +// $user['login'] = $bots['name']; +// $user['hp'] = $bots['hp']; + die('Неустранимая ошибка в showinf_pers(), обратитесь к разработчику.'); } else { - $user = mysql_fetch_array(mysql_query("SELECT * FROM `users` WHERE `id` = '{$id}' LIMIT 1")); +// $user = mysql_fetch_array(mysql_query("SELECT * FROM `users` WHERE `id` = '{$id}' LIMIT 1")); + $user = db::c()->query('SELECT * FROM `users` WHERE `id` = ?i', $id)->fetch_assoc() $invis = $user['invis']; } @@ -2314,9 +2316,7 @@ function showinf_pers($id, $pas = 0, $battle = 0, $me = 0, $main = false) $r .= '
Lichka\n"; - $table .= " | ".$row['id']." | \n"; - $table .= "".$row['pers']." | \n"; - $table .= "".$row['text']." | \n"; - - $table .= "
---|
\n"; - - $sql2 = db::c()->query('SELECT * FROM `paldelo`')->fetch_assoc(); - $table2 = "
Paldelo\n"; - $table2 .= " | ".$sql2['id']." | \n"; - $table2 .= "".$sql2['author']." | \n"; - $table2 .= "".$sql2['text']." | \n"; - - $table2 .= "
---|