Upload files to "/"

This commit is contained in:
2026-06-03 05:16:25 +00:00
parent 50e7cf7bc0
commit 232f2956a3
5 changed files with 1864 additions and 0 deletions
+1652
View File
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
+14
View File
@@ -0,0 +1,14 @@
<?php
// koneksi.php
define('DB_HOST', 'localhost');
define('DB_USER', 'root');
define('DB_PASS', ''); // XAMPP default kosong
define('DB_NAME', 'webgis_sigma');
$conn = new mysqli(DB_HOST, DB_USER, DB_PASS, DB_NAME);
$conn->set_charset('utf8mb4');
if ($conn->connect_error) {
http_response_code(500);
die(json_encode(['status'=>'error','message'=>'Koneksi gagal: '.$conn->connect_error]));
}
+182
View File
@@ -0,0 +1,182 @@
<?php
// proses.php — CRUD handler untuk Jalan, Parsil, Point
header('Content-Type: application/json; charset=utf-8');
include 'koneksi.php';
function bersih($s) { return htmlspecialchars(strip_tags(trim($s))); }
$aksi = $_POST['aksi'] ?? $_GET['aksi'] ?? '';
// ══════════════════════════════════════════════
// READ — ambil semua data per layer
// ══════════════════════════════════════════════
if ($aksi === 'baca') {
$layer = $_GET['layer'] ?? 'jalan';
$tabel = ['jalan'=>'data_jalan','parsil'=>'data_parsil','point'=>'data_point'];
if (!isset($tabel[$layer])) { echo json_encode(['status'=>'error','message'=>'Layer tidak valid']); exit; }
$res = $conn->query("SELECT * FROM {$tabel[$layer]} ORDER BY created_at DESC");
$data = [];
while ($row = $res->fetch_assoc()) $data[] = $row;
echo json_encode(['status'=>'ok','data'=>$data]);
exit;
}
// ══════════════════════════════════════════════
// READ SINGLE
// ══════════════════════════════════════════════
if ($aksi === 'detail') {
$layer = $_GET['layer'] ?? '';
$id = intval($_GET['id'] ?? 0);
$tabel = ['jalan'=>'data_jalan','parsil'=>'data_parsil','point'=>'data_point'];
if (!isset($tabel[$layer])) { echo json_encode(['status'=>'error','message'=>'Layer tidak valid']); exit; }
$stmt = $conn->prepare("SELECT * FROM {$tabel[$layer]} WHERE id=?");
$stmt->bind_param('i', $id);
$stmt->execute();
$row = $stmt->get_result()->fetch_assoc();
echo $row ? json_encode(['status'=>'ok','data'=>$row]) : json_encode(['status'=>'error','message'=>'Tidak ditemukan']);
exit;
}
// ══════════════════════════════════════════════
// CREATE — simpan data baru
// ══════════════════════════════════════════════
if ($aksi === 'simpan') {
$layer = $_POST['layer'] ?? '';
$geojson = $_POST['geojson'] ?? '';
// Validasi GeoJSON
if (!$geojson || json_decode($geojson) === null) {
echo json_encode(['status'=>'error','message'=>'GeoJSON tidak valid']); exit;
}
if ($layer === 'jalan') {
$nama = bersih($_POST['nama'] ?? '');
$status = bersih($_POST['status'] ?? '');
$panjang = floatval($_POST['panjang'] ?? 0);
$valid = ['Jalan Nasional','Jalan Provinsi','Jalan Kabupaten'];
if (!$nama || !in_array($status, $valid)) { echo json_encode(['status'=>'error','message'=>'Data tidak lengkap']); exit; }
$stmt = $conn->prepare("INSERT INTO data_jalan (nama_jalan,status_jalan,panjang_meter,geojson) VALUES (?,?,?,?)");
$stmt->bind_param('ssds', $nama, $status, $panjang, $geojson);
} elseif ($layer === 'parsil') {
$nama = bersih($_POST['nama'] ?? '');
$status = bersih($_POST['status'] ?? '');
$luas = floatval($_POST['luas'] ?? 0);
$valid = ['SHM','HGB','HGU','HP'];
if (!$nama || !in_array($status, $valid)) { echo json_encode(['status'=>'error','message'=>'Data tidak lengkap']); exit; }
$stmt = $conn->prepare("INSERT INTO data_parsil (nama_parsil,status_sertifikat,luas_m2,geojson) VALUES (?,?,?,?)");
$stmt->bind_param('ssds', $nama, $status, $luas, $geojson);
} elseif ($layer === 'point') {
$nama = bersih($_POST['nama'] ?? '');
$wa = bersih($_POST['wa'] ?? '');
$jam = ($_POST['jam'] ?? 'Tidak') === 'Ya' ? 'Ya' : 'Tidak';
if (!$nama) { echo json_encode(['status'=>'error','message'=>'Nama wajib diisi']); exit; }
$stmt = $conn->prepare("INSERT INTO data_point (nama_objek,no_wa,buka_24jam,geojson) VALUES (?,?,?,?)");
$stmt->bind_param('ssss', $nama, $wa, $jam, $geojson);
} else {
echo json_encode(['status'=>'error','message'=>'Layer tidak dikenali']); exit;
}
if ($stmt->execute()) {
echo json_encode(['status'=>'ok','id'=>$stmt->insert_id,'message'=>'Data berhasil disimpan!']);
} else {
echo json_encode(['status'=>'error','message'=>'Gagal: '.$stmt->error]);
}
$stmt->close();
exit;
}
// ══════════════════════════════════════════════
// UPDATE — perbarui atribut & koordinat
// ══════════════════════════════════════════════
if ($aksi === 'update') {
$layer = $_POST['layer'] ?? '';
$id = intval($_POST['id'] ?? 0);
$geojson = $_POST['geojson'] ?? null;
if (!$id) { echo json_encode(['status'=>'error','message'=>'ID tidak valid']); exit; }
if ($layer === 'jalan') {
$nama = bersih($_POST['nama'] ?? '');
$status = bersih($_POST['status'] ?? '');
$panjang = floatval($_POST['panjang'] ?? 0);
$valid = ['Jalan Nasional','Jalan Provinsi','Jalan Kabupaten'];
if (!$nama || !in_array($status, $valid)) { echo json_encode(['status'=>'error','message'=>'Data tidak lengkap']); exit; }
if ($geojson && json_decode($geojson)) {
$stmt = $conn->prepare("UPDATE data_jalan SET nama_jalan=?,status_jalan=?,panjang_meter=?,geojson=? WHERE id=?");
$stmt->bind_param('ssdsi', $nama, $status, $panjang, $geojson, $id);
} else {
$stmt = $conn->prepare("UPDATE data_jalan SET nama_jalan=?,status_jalan=?,panjang_meter=? WHERE id=?");
$stmt->bind_param('ssdi', $nama, $status, $panjang, $id);
}
} elseif ($layer === 'parsil') {
$nama = bersih($_POST['nama'] ?? '');
$status = bersih($_POST['status'] ?? '');
$luas = floatval($_POST['luas'] ?? 0);
$valid = ['SHM','HGB','HGU','HP'];
if (!$nama || !in_array($status, $valid)) { echo json_encode(['status'=>'error','message'=>'Data tidak lengkap']); exit; }
if ($geojson && json_decode($geojson)) {
$stmt = $conn->prepare("UPDATE data_parsil SET nama_parsil=?,status_sertifikat=?,luas_m2=?,geojson=? WHERE id=?");
$stmt->bind_param('ssdsi', $nama, $status, $luas, $geojson, $id);
} else {
$stmt = $conn->prepare("UPDATE data_parsil SET nama_parsil=?,status_sertifikat=?,luas_m2=? WHERE id=?");
$stmt->bind_param('ssdi', $nama, $status, $luas, $id);
}
} elseif ($layer === 'point') {
$nama = bersih($_POST['nama'] ?? '');
$wa = bersih($_POST['wa'] ?? '');
$jam = ($_POST['jam'] ?? 'Tidak') === 'Ya' ? 'Ya' : 'Tidak';
if (!$nama) { echo json_encode(['status'=>'error','message'=>'Nama wajib diisi']); exit; }
if ($geojson && json_decode($geojson)) {
$stmt = $conn->prepare("UPDATE data_point SET nama_objek=?,no_wa=?,buka_24jam=?,geojson=? WHERE id=?");
$stmt->bind_param('ssssi', $nama, $wa, $jam, $geojson, $id);
} else {
$stmt = $conn->prepare("UPDATE data_point SET nama_objek=?,no_wa=?,buka_24jam=? WHERE id=?");
$stmt->bind_param('sssi', $nama, $wa, $jam, $id);
}
} else {
echo json_encode(['status'=>'error','message'=>'Layer tidak dikenali']); exit;
}
if ($stmt->execute()) {
echo json_encode(['status'=>'ok','message'=>'Data berhasil diperbarui!']);
} else {
echo json_encode(['status'=>'error','message'=>'Gagal: '.$stmt->error]);
}
$stmt->close();
exit;
}
// ══════════════════════════════════════════════
// DELETE
// ══════════════════════════════════════════════
if ($aksi === 'hapus') {
$layer = $_POST['layer'] ?? $_GET['layer'] ?? '';
$id = intval($_POST['id'] ?? $_GET['id'] ?? 0);
$tabel = ['jalan'=>'data_jalan','parsil'=>'data_parsil','point'=>'data_point'];
if (!$id || !isset($tabel[$layer])) { echo json_encode(['status'=>'error','message'=>'Parameter tidak valid']); exit; }
$stmt = $conn->prepare("DELETE FROM {$tabel[$layer]} WHERE id=?");
$stmt->bind_param('i', $id);
echo $stmt->execute()
? json_encode(['status'=>'ok','message'=>'Data berhasil dihapus!'])
: json_encode(['status'=>'error','message'=>'Gagal: '.$stmt->error]);
$stmt->close();
exit;
}
echo json_encode(['status'=>'error','message'=>"Aksi '$aksi' tidak dikenali."]);