This commit is contained in:
Evelyn Sucitro 2025-11-12 20:07:16 +07:00
parent e4898388d1
commit 9ea5612980
5 changed files with 108 additions and 6 deletions

View File

@ -1,11 +1,13 @@
<?php <?php
$host = "localhost"; $DB_HOST = "";
$user = "root"; $DB_USER = "";
$pass = ""; $DB_PASS = "";
$db = "game2048"; $DB_NAME = "";
$conn = new mysqli($host, $user, $pass, $db); $conn = new mysqli($DB_HOST, $DB_USER, $DB_PASS, $DB_NAME);
if ($conn->connect_error) { if ($conn->connect_error) {
die("Koneksi gagal: " . $conn->connect_error); http_response_code(500);
die(json_encode(["status"=>"error","message"=>"Database connection failed"]));
} }
$conn->set_charset("utf8mb4");
?> ?>

View File

@ -0,0 +1,33 @@
<?php
header('Content-Type: application/json');
include 'Database.php';
session_start();
$data = $_POST;
if (empty($data['username']) || empty($data['password'])) {
echo json_encode(["status"=>"error","message"=>"Username & password dibutuhkan"]);
exit;
}
$username = trim($data['username']);
$password = $data['password'];
$stmt = $conn->prepare("SELECT id, password FROM users WHERE username = ?");
$stmt->bind_param("s", $username);
$stmt->execute();
$stmt->bind_result($id, $hash);
if ($stmt->fetch()) {
if (password_verify($password, $hash)) {
session_regenerate_id(true);
$_SESSION['user_id'] = $id;
$_SESSION['username'] = $username;
echo json_encode(["status"=>"success","message"=>"Login berhasil"]);
} else {
echo json_encode(["status"=>"error","message"=>"Password salah"]);
}
} else {
echo json_encode(["status"=>"error","message"=>"User tidak ditemukan"]);
}
$stmt->close();
$conn->close();
?>

14
Logout.php Normal file
View File

@ -0,0 +1,14 @@
<?php
header('Content-Type: application/json');
session_start();
$_SESSION = [];
if (ini_get("session.use_cookies")) {
$params = session_get_cookie_params();
setcookie(session_name(), '', time() - 42000,
$params["path"], $params["domain"],
$params["secure"], $params["httponly"]
);
}
session_destroy();
echo json_encode(["status"=>"success","message"=>"Logout berhasil"]);
?>

View File

@ -0,0 +1,37 @@
<?php
header('Content-Type: application/json');
include 'Database.php';
session_start();
$data = $_POST;
if (empty($data['username']) || empty($data['password'])) {
echo json_encode(["status"=>"error","message"=>"Username & password dibutuhkan"]);
exit;
}
$username = trim($data['username']);
$password = $data['password'];
$stmt = $conn->prepare("SELECT id FROM users WHERE username = ?");
$stmt->bind_param("s", $username);
$stmt->execute();
$stmt->store_result();
if ($stmt->num_rows > 0) {
echo json_encode(["status"=>"error","message"=>"Username sudah terpakai"]);
exit;
}
$stmt->close();
$hash = password_hash($password, PASSWORD_DEFAULT);
$stmt = $conn->prepare("INSERT INTO users (username, password) VALUES (?, ?)");
$stmt->bind_param("ss", $username, $hash);
if ($stmt->execute()) {
$_SESSION['user_id'] = $stmt->insert_id;
$_SESSION['username'] = $username;
echo json_encode(["status"=>"success","message"=>"Register berhasil"]);
} else {
echo json_encode(["status"=>"error","message"=>"Gagal mendaftar"]);
}
$stmt->close();
$conn->close();
?>

View File

@ -0,0 +1,16 @@
<?php
include 'Database.php';
session_start();
if (isset($_SESSION['username'])) {
$username = $_SESSION['username'];
$score = $_POST['score'];
$query = "INSERT INTO leaderboard (username, score) VALUES ('$username', '$score')";
mysqli_query($conn, $query);
echo json_encode(["status" => "success"]);
} else {
echo json_encode(["status" => "error", "message" => "Not logged in"]);
}
?>