function checkGlobalLogin($playerID, $pass) { $pass = md5($pass); $db = sqlconn(); $query = 'SELECT passwordHash, salt FROM users_data WHERE playerID = :ID LIMIT 1'; $prepared = $db->prepare($query); $prepared->bindParam(':ID', $playerID, PDO::PARAM_INT); $prepared->execute(); $result = $prepared->fetchAll(); $count = count($result); if ($count != 0) { $row = $result[0]; $passHash = $row['passwordHash']; $salt = $row['salt']; if ($passHash == '') { $salt = substr(md5(rand()), 0, 5); $prepared = $db->prepare('UPDATE users_data SET passwordHash = :passhash, salt = :salt WHERE playerID = :ID'); $prepared->bindParam(':ID', $playerID, PDO::PARAM_INT); $prepared->bindParam(':passhash', hashPassword($pass, $salt), PDO::PARAM_STR); $prepared->bindParam(':salt', $salt, PDO::PARAM_STR); //random string $prepared->execute(); return $prepared->rowCount() == 1; } if (hashPassword($pass, $salt) == $passHash) { return true; } } else { /*not in db*/ } return false; }
function addToDatabase($score, $playerID, $completed) { global $replayID; $db = sqlconn(); $query = 'INSERT INTO scores (ID, beatmapHash, playerID, score, combo, fc, mods, count300, count100, count50, countGeki, countKatu, countMiss, time, mode, completed) VALUES (NULL, :beatmap, :user, :score, :combo, :fc, :mods, :c300, :c100, :c50, :geki, :katu, :miss, :time, :mode, :completed)'; $prepared = $db->prepare($query); $prepared->bindParam(':beatmap', $score[0], PDO::PARAM_STR); $prepared->bindParam(':user', $playerID, PDO::PARAM_INT); $prepared->bindParam(':score', $score[9], PDO::PARAM_INT); $prepared->bindParam(':combo', $score[10], PDO::PARAM_INT); $prepared->bindParam(':fc', $score[11], PDO::PARAM_INT); $prepared->bindParam(':mods', $score[13], PDO::PARAM_INT); $prepared->bindParam(':c300', $score[3], PDO::PARAM_INT); $prepared->bindParam(':c100', $score[4], PDO::PARAM_INT); $prepared->bindParam(':c50', $score[5], PDO::PARAM_INT); $prepared->bindParam(':geki', $score[6], PDO::PARAM_INT); $prepared->bindParam(':katu', $score[7], PDO::PARAM_INT); $prepared->bindParam(':miss', $score[8], PDO::PARAM_INT); $prepared->bindParam(':time', $score[16], PDO::PARAM_STR); $prepared->bindParam(':mode', $score[15], PDO::PARAM_INT); $prepared->bindParam(':completed', $completed, PDO::PARAM_INT); $result = $prepared->execute(); $replayID = $db->lastInsertId(); if (!$result) { displayError('beatmap'); } }
function getScores($beatmapHash, $mode, $playerID) { $db = sqlconn(); $personalScore = $playerID == NULL; if ($personalScore) { //global scores $query = 'SELECT * FROM scores WHERE beatmapHash = :beatmap AND mode = :mode ORDER BY score DESC'; $prepared = $db->prepare($query); $prepared->bindParam(':beatmap', $beatmapHash, PDO::PARAM_STR); $prepared->bindParam(':mode', $mode, PDO::PARAM_INT); } else { //personal scores $query = 'SELECT * FROM scores WHERE beatmapHash = :beatmap AND playerID = :user AND mode = :mode ORDER BY score DESC LIMIT 1'; $prepared = $db->prepare($query); $prepared->bindParam(':beatmap', $beatmapHash, PDO::PARAM_STR); $prepared->bindParam(':mode', $mode, PDO::PARAM_INT); $prepared->bindParam(':user', $playerID, PDO::PARAM_INT); } $prepared->execute(); $i = 0; while ($row = $prepared->fetch()) { $i++; $playerID = $row['playerID']; $score = $row['score']; $combo = $row['combo']; $fc = $row['fc']; $mods = $row['mods']; $ID = $row['ID']; $count50 = $row['count50']; $count100 = $row['count100']; $count300 = $row['count300']; $countKatu = $row['countKatu']; $countGeki = $row['countGeki']; $countMiss = $row['countMiss']; $time = $row['time']; $completed = $row['completed']; $showScore = !isUserBanned($playerID); //customisation $avatarID = getAvatarID($playerID); $newUser = getUserName($playerID); //display play ID if (false) { $newUser = "******"; } //display tries if (true) { $tries = getTries($playerID, $beatmapHash, $mode); $newUser = "******" . ($tries == 1 ? 'try' : 'tries') . ')'; } if ($completed == 1) { //display quitted if (true) { $newUser = '******' . $newUser; } else { if ($personalScore) { echo "\r\n"; } continue; } } if ($completed == 0) { //display failed if (true) { $newUser = '******' . $newUser; } else { if ($personalScore) { echo "\r\n"; } continue; } } if ($showScore) { echo scoreString($ID, $newUser, $score, $combo, $count50, $count100, $count300, $countMiss, $countKatu, $countGeki, $fc, $mods, $avatarID, $i, $time); } } if ($i == 0) { //no scores recieved echo "\r\n"; } }