6215b4367a
Sistem WebGIS analisis sebaran penduduk miskin dan jangkauan rumah ibadah. Fitur: peta interaktif Leaflet.js, CRUD rumah ibadah & penduduk miskin, auto-kategorisasi haversine, heatmap, export PDF/CSV, dashboard analitik, manajemen pengguna (superadmin/admin), login sistem. Teknologi: PHP, MySQL, Leaflet.js, OpenStreetMap, Nominatim Geocoding, mPDF. Catatan: jalankan `composer install` di folder uas/ untuk install dependencies. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
82 lines
3.4 KiB
PHP
82 lines
3.4 KiB
PHP
<?php
|
|
include 'koneksi.php';
|
|
|
|
$type = $_POST['type'] ?? '';
|
|
$id = (int)($_POST['id'] ?? 0);
|
|
|
|
if ($id <= 0) { echo json_encode(['status' => 'error']); exit; }
|
|
|
|
function esc($conn, $v) { return mysqli_real_escape_string($conn, trim($v)); }
|
|
|
|
switch ($type) {
|
|
case 'spbu':
|
|
$nama = esc($conn, $_POST['nama'] ?? '');
|
|
$nomor = esc($conn, $_POST['nomor'] ?? '');
|
|
$status = in_array($_POST['status'] ?? '', ['Ya', 'Tidak']) ? $_POST['status'] : 'Tidak';
|
|
$q = "UPDATE spbu SET nama='$nama', nomor='$nomor', status_24jam='$status' WHERE id=$id";
|
|
break;
|
|
|
|
case 'kemiskinan':
|
|
$nama_kk = esc($conn, $_POST['nama_kk'] ?? '');
|
|
$jumlah_kk = max(1, (int)($_POST['jumlah_kk'] ?? 1));
|
|
$alamat = esc($conn, $_POST['alamat'] ?? '');
|
|
$pkh = isset($_POST['pkh']) && $_POST['pkh'] == '1' ? 1 : 0;
|
|
$bpnt = isset($_POST['bpnt']) && $_POST['bpnt'] == '1' ? 1 : 0;
|
|
$blt = isset($_POST['blt']) && $_POST['blt'] == '1' ? 1 : 0;
|
|
|
|
$fotoSet = '';
|
|
if (!empty($_FILES['foto']['name']) && $_FILES['foto']['error'] === UPLOAD_ERR_OK) {
|
|
$ext = strtolower(pathinfo($_FILES['foto']['name'], PATHINFO_EXTENSION));
|
|
$allowed = ['jpg', 'jpeg', 'png', 'webp'];
|
|
if (in_array($ext, $allowed) && $_FILES['foto']['size'] <= 5 * 1024 * 1024) {
|
|
$dir = __DIR__ . '/uploads/kemiskinan/';
|
|
if (!is_dir($dir)) mkdir($dir, 0755, true);
|
|
$fname = 'kk_' . $id . '_' . time() . '.' . $ext;
|
|
if (move_uploaded_file($_FILES['foto']['tmp_name'], $dir . $fname)) {
|
|
$fotoSet = ", foto='" . mysqli_real_escape_string($conn, $fname) . "'";
|
|
}
|
|
}
|
|
}
|
|
|
|
$q = "UPDATE kemiskinan SET nama_kk='$nama_kk', jumlah_kk=$jumlah_kk, alamat='$alamat',
|
|
pkh=$pkh, bpnt=$bpnt, blt=$blt{$fotoSet} WHERE id=$id";
|
|
break;
|
|
|
|
case 'masjid':
|
|
$nama = esc($conn, $_POST['nama_masjid'] ?? '');
|
|
$pic = esc($conn, $_POST['pic'] ?? '');
|
|
$alamat = esc($conn, $_POST['alamat'] ?? '');
|
|
$q = "UPDATE masjid SET nama_masjid='$nama', pic='$pic', alamat='$alamat' WHERE id=$id";
|
|
break;
|
|
|
|
case 'jalan':
|
|
$nama = esc($conn, $_POST['nama_jalan'] ?? '');
|
|
$status = in_array($_POST['status_jalan'] ?? '', ['Nasional', 'Provinsi', 'Kabupaten'])
|
|
? $_POST['status_jalan'] : 'Kabupaten';
|
|
$q = "UPDATE jalan SET nama_jalan='$nama', status_jalan='$status' WHERE id=$id";
|
|
break;
|
|
|
|
case 'persil':
|
|
$nomor = esc($conn, $_POST['nomor_persil'] ?? '');
|
|
$status = in_array($_POST['status_milik'] ?? '', ['SHM', 'HGB', 'HGU', 'HP'])
|
|
? $_POST['status_milik'] : 'SHM';
|
|
$q = "UPDATE persil SET nomor_persil='$nomor', status_milik='$status' WHERE id=$id";
|
|
break;
|
|
|
|
case 'wilayah':
|
|
$nama = esc($conn, $_POST['nama'] ?? '');
|
|
$tipe = in_array($_POST['tipe'] ?? '', ['RT','RW','Kelurahan','Kecamatan'])
|
|
? $_POST['tipe'] : 'RT';
|
|
$q = "UPDATE wilayah SET nama='$nama', tipe='$tipe' WHERE id=$id";
|
|
break;
|
|
|
|
default:
|
|
echo json_encode(['status' => 'error', 'message' => 'Tipe tidak dikenal.']); exit;
|
|
}
|
|
|
|
if (mysqli_query($conn, $q)) {
|
|
echo json_encode(['status' => 'success']);
|
|
} else {
|
|
echo json_encode(['status' => 'error', 'message' => mysqli_error($conn)]);
|
|
}
|