kelompok06-2048/Score.php
Evelyn Sucitro 8d4895bdab Update
2025-12-01 12:39:23 +07:00

83 lines
2.5 KiB
PHP

<?php
session_start();
header('Content-Type: application/json');
include 'Connection.php';
// Pastikan user sudah login
if (!isset($_SESSION['username'])) {
echo json_encode(["status" => "error", "message" => "Belum login"]);
exit;
}
$username = $_SESSION['username'];
$score = intval($_POST['score'] ?? 0);
// Validasi score
if ($score <= 0) {
echo json_encode(["status" => "error", "message" => "Skor tidak valid"]);
exit;
}
// Validasi score maksimal (opsional, sesuaikan dengan game Anda)
if ($score > 999999) {
echo json_encode(["status" => "error", "message" => "Skor terlalu tinggi"]);
exit;
}
// Cek apakah user sudah punya record
$checkStmt = $conn->prepare("SELECT score FROM leaderboard WHERE username = ?");
$checkStmt->bind_param("s", $username);
$checkStmt->execute();
$result = $checkStmt->get_result();
if ($result->num_rows > 0) {
// User sudah ada, cek apakah score baru lebih tinggi
$row = $result->fetch_assoc();
$oldScore = $row['score'];
if ($score > $oldScore) {
// Update dengan score yang lebih tinggi
$updateStmt = $conn->prepare("UPDATE leaderboard SET score = ? WHERE username = ?");
$updateStmt->bind_param("is", $score, $username);
if ($updateStmt->execute()) {
echo json_encode([
"status" => "success",
"message" => "Skor berhasil diperbarui!",
"newHighScore" => true,
"score" => $score
]);
} else {
echo json_encode(["status" => "error", "message" => "Gagal memperbarui skor"]);
}
$updateStmt->close();
} else {
// Score baru lebih rendah, tidak perlu update
echo json_encode([
"status" => "success",
"message" => "Skor tidak diperbarui (skor lama lebih tinggi)",
"newHighScore" => false,
"currentHighScore" => $oldScore
]);
}
} else {
// User belum ada, insert baru
$insertStmt = $conn->prepare("INSERT INTO leaderboard (username, score) VALUES (?, ?)");
$insertStmt->bind_param("si", $username, $score);
if ($insertStmt->execute()) {
echo json_encode([
"status" => "success",
"message" => "Skor berhasil disimpan!",
"newHighScore" => true,
"score" => $score
]);
} else {
echo json_encode(["status" => "error", "message" => "Gagal menyimpan skor"]);
}
$insertStmt->close();
}
$checkStmt->close();
$conn->close();
?>