PHP
This commit is contained in:
parent
dcb69e9dc5
commit
b67b84dc60
@ -10,23 +10,74 @@ if (!isset($_SESSION['username'])) {
|
||||
}
|
||||
|
||||
$username = $_SESSION['username'];
|
||||
$score = $_POST['score'] ?? 0;
|
||||
$score = intval($_POST['score'] ?? 0);
|
||||
|
||||
// Validasi score
|
||||
if ($score <= 0) {
|
||||
echo json_encode(["status" => "error", "message" => "Skor tidak valid"]);
|
||||
exit;
|
||||
}
|
||||
|
||||
// Simpan ke database
|
||||
$stmt = $conn->prepare("INSERT INTO leaderboard (username, score) VALUES (?, ?)");
|
||||
$stmt->bind_param("si", $username, $score);
|
||||
// Validasi score maksimal (opsional, sesuaikan dengan game Anda)
|
||||
if ($score > 999999) {
|
||||
echo json_encode(["status" => "error", "message" => "Skor terlalu tinggi"]);
|
||||
exit;
|
||||
}
|
||||
|
||||
if ($stmt->execute()) {
|
||||
echo json_encode(["status" => "success", "message" => "Skor berhasil disimpan"]);
|
||||
// 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();
|
||||
}
|
||||
|
||||
$stmt->close();
|
||||
$checkStmt->close();
|
||||
$conn->close();
|
||||
?>
|
||||
Loading…
x
Reference in New Issue
Block a user