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