"error", "message" => "Not logged in" ]); exit; } $username = $_SESSION['username']; $user_id = $_SESSION['user_id']; $score = intval($_POST['score'] ?? 0); if ($score <= 0) { echo json_encode([ "status" => "error", "message" => "Invalid score" ]); exit; } $checkStmt = $conn->prepare("SELECT score FROM leaderboard WHERE user_id = ?"); $checkStmt->bind_param("i", $user_id); $checkStmt->execute(); $result = $checkStmt->get_result(); if ($result->num_rows > 0) { $row = $result->fetch_assoc(); $oldScore = $row['score']; if ($score > $oldScore) { $updateStmt = $conn->prepare( "UPDATE leaderboard SET score = ?, username = ? WHERE user_id = ?" ); $updateStmt->bind_param("isi", $score, $username, $user_id); if ($updateStmt->execute()) { echo json_encode([ "status" => "success", "message" => "New high score saved", "newHighScore" => true ]); } else { echo json_encode([ "status" => "error", "message" => "Failed to update score" ]); } $updateStmt->close(); } else { echo json_encode([ "status" => "success", "message" => "Score not higher than previous", "newHighScore" => false ]); } } else { $insertStmt = $conn->prepare( "INSERT INTO leaderboard (user_id, username, score) VALUES (?, ?, ?)" ); $insertStmt->bind_param("isi", $user_id, $username, $score); if ($insertStmt->execute()) { echo json_encode([ "status" => "success", "message" => "First score saved", "newHighScore" => true ]); } else { echo json_encode([ "status" => "error", "message" => "Failed to save score" ]); } $insertStmt->close(); } $checkStmt->close(); $conn->close(); ?>