1st commit: version 1.0 WebGis-Pemetaan-Kemiskinan

This commit is contained in:
2026-06-03 02:09:03 +07:00
commit 313d2fd5a7
48 changed files with 4839 additions and 0 deletions
+36
View File
@@ -0,0 +1,36 @@
<?php
session_start();
header("Content-Type: application/json; charset=UTF-8");
header("Access-Control-Allow-Methods: POST");
require_once '../koneksi.php';
$data = json_decode(file_get_contents("php://input"));
if (!empty($data->username) && !empty($data->password)) {
try {
$stmt = $conn->prepare("SELECT id, username, password, role FROM users WHERE username = :username LIMIT 1");
$stmt->bindValue(':username', $data->username);
$stmt->execute();
if($stmt->rowCount() > 0) {
$user = $stmt->fetch(PDO::FETCH_ASSOC);
// Verifikasi hash password
if(password_verify($data->password, $user['password'])) {
$_SESSION['user_id'] = $user['id'];
$_SESSION['username'] = $user['username'];
$_SESSION['role'] = $user['role'];
echo json_encode(["pesan" => "Login Berhasil!", "user" => $user['username']]);
} else {
http_response_code(401); echo json_encode(["error" => "Password salah."]);
}
} else {
http_response_code(404); echo json_encode(["error" => "Username tidak ditemukan."]);
}
} catch(PDOException $e) {
http_response_code(500); echo json_encode(["error" => "Database Error: " . $e->getMessage()]);
}
} else {
http_response_code(400); echo json_encode(["error" => "Username dan Password wajib diisi."]);
}
?>
+7
View File
@@ -0,0 +1,7 @@
<?php
session_start();
session_unset();
session_destroy();
header("Content-Type: application/json; charset=UTF-8");
echo json_encode(["pesan" => "Anda telah berhasil keluar."]);
?>
+34
View File
@@ -0,0 +1,34 @@
<?php
session_start();
header("Content-Type: application/json; charset=UTF-8");
header("Access-Control-Allow-Methods: POST");
require_once '../koneksi.php';
$data = json_decode(file_get_contents("php://input"));
if (!empty($data->username) && !empty($data->password)) {
try {
// Cek apakah username sudah ada
$stmt = $conn->prepare("SELECT id FROM users WHERE username = :username");
$stmt->bindValue(':username', $data->username);
$stmt->execute();
if($stmt->rowCount() > 0) {
http_response_code(400); die(json_encode(["error" => "Username sudah terdaftar, gunakan yang lain!"]));
}
// Enkripsi password menggunakan BCRYPT
$query = "INSERT INTO users (username, password) VALUES (:username, :password)";
$stmt = $conn->prepare($query);
$stmt->bindValue(':username', htmlspecialchars(strip_tags($data->username)));
$stmt->bindValue(':password', password_hash($data->password, PASSWORD_BCRYPT));
if($stmt->execute()) {
echo json_encode(["pesan" => "Registrasi berhasil, silakan login!"]);
}
} catch(PDOException $e) {
http_response_code(500); echo json_encode(["error" => "Database Error: " . $e->getMessage()]);
}
} else {
http_response_code(400); echo json_encode(["error" => "Username dan Password wajib diisi."]);
}
?>
+11
View File
@@ -0,0 +1,11 @@
<?php
session_start();
header("Content-Type: application/json; charset=UTF-8");
if(isset($_SESSION['user_id'])) {
echo json_encode(["status" => "aktif", "username" => $_SESSION['username']]);
} else {
http_response_code(401);
echo json_encode(["status" => "tidak_aktif", "error" => "Sesi kedaluwarsa atau belum login."]);
}
?>