$stmt->execute(); $stmt->bind_result($id); if (!$stmt->fetch() || !$id) { header("HTTP/1.0 204 No Response"); break; } $answer = array('id' => str_replace('-', '', $id), 'name' => $name); echo_log(json_encode($answer, JSON_UNESCAPED_SLASHES)); break; case stripos($_GET['act'], 'profiles/minecraft') === 0: if (count($jsonData) > 100) { echo_log(json_encode(array('error' => 'Too many', 'errorMessage' => 'Error', 'cause' => 'over100'))); break; } $answer = array(); $link = newdb(); $stmt = $link->prepare("SELECT clientToken FROM players WHERE player = ?"); foreach ($jsonData as $name) { $stmt->bind_param('s', $name); $stmt->execute(); $stmt->bind_result($id); if ($stmt->fetch() && $id) { $answer[] = array('id' => str_replace('-', '', $id), 'name' => $name); } } echo_log(json_encode($answer, JSON_UNESCAPED_SLASHES)); break; case 'chpass': echo_log(json_encode(array('error' => 'Use forum', 'errorMessage' => 'Error', 'cause' => 'Internal error'))); break; case 'ban':
function get_skin($user, $skinData) { $tmp = tempnam("/tmp", "skin_"); if (!file_put_contents($tmp, base64_decode($skinData))) { return FALSE; } $info = getimagesize($tmp); if ($info[0] != 64 || $info[1] != 32 && $info[1] != 64 || $info['mime'] != 'image/png') { error_log(print_r(getimagesize($tmp), true)); return FALSE; } $link = newdb(); $stmt = $link->prepare("SELECT skin FROM players WHERE player=?"); $stmt->bind_param('s', $user); $stmt->execute(); $stmt->bind_result($oldskin); $stmt->fetch(); $stmt->free_result(); if ($oldskin and is_readable("./Skins/" . $oldskin)) { unlink("./Skins/" . $oldskin); } $newskin = getGUID(false) . getGUID(false); $stmt = $link->prepare("UPDATE players SET skin=? WHERE player=?"); $stmt->bind_param('ss', $newskin, $user); $stmt->execute(); if (!rename($tmp, "./Skins/" . $newskin)) { return FALSE; } return TRUE; }