Upload files to "/"
This commit is contained in:
+73
@@ -0,0 +1,73 @@
|
||||
<?php
|
||||
// ============================================================================
|
||||
// koneksi.php - KONEKSI UTAMA INTEGRATED (ANTI-ERROR FOLDER PATH)
|
||||
// Sistem WebGIS Poverty Mapping & Geometri Sigma
|
||||
// Penyusun: Tiara Chontesa (D1041231070)
|
||||
// ============================================================================
|
||||
|
||||
// 1. KREDENSIAL DATABASE LOCALHOST (XAMPP)
|
||||
define('DB_HOST', 'localhost');
|
||||
define('DB_USER', 'root');
|
||||
define('DB_PASS', ''); // Kosongkan jika menggunakan XAMPP standar lokal
|
||||
define('DB_NAME', 'db_poverty_mapping'); // Mengarah ke nama database gabungan baru
|
||||
|
||||
// Eksekusi Koneksi MySQLi
|
||||
$conn = new mysqli(DB_HOST, DB_USER, DB_PASS, DB_NAME);
|
||||
|
||||
// Validasi Kegagalan Koneksi
|
||||
if ($conn->connect_error) {
|
||||
http_response_code(500);
|
||||
die(json_encode([
|
||||
'status' => 'error',
|
||||
'message' => 'Koneksi database gagal: ' . $conn->connect_error
|
||||
]));
|
||||
}
|
||||
|
||||
// Set Charset ke UTF-8 agar aman membaca data koordinat spasial/GeoJSON
|
||||
$conn->set_charset('utf8mb4');
|
||||
|
||||
|
||||
// 2. DETEKSI LOKASI PATH RELATIF (Cerdas mencegah error No Such File / Wrong Redirect)
|
||||
if (!function_exists('getRedirectPath')) {
|
||||
function getRedirectPath($targetFile) {
|
||||
// Ambil nama folder tempat file PHP yang sedang berjalan berada
|
||||
$currentDir = basename(dirname($_SERVER['SCRIPT_FILENAME']));
|
||||
|
||||
// Jika file pengakses ada di dalam subfolder tugas (misal: tugas1_polyline, tugas2_polygon)
|
||||
// atau berada di dalam folder 'includes', mundurkan path satu tingkat ke luar menggunakan '../'
|
||||
if (strpos($currentDir, 'tugas') !== false || $currentDir === 'includes') {
|
||||
return '../' . $targetFile;
|
||||
}
|
||||
return $targetFile;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// 3. FUNGSI OTENTIKASI GLOBAL (Bisa langsung dipanggil di semua folder tugas Anda)
|
||||
if (!function_exists('cekLogin')) {
|
||||
function cekLogin() {
|
||||
if (session_status() === PHP_SESSION_NONE) {
|
||||
session_start();
|
||||
}
|
||||
// Jika belum ada session user_id, tendang paksa ke halaman login.php dengan path yang benar
|
||||
if (!isset($_SESSION['user_id'])) {
|
||||
$loginPath = getRedirectPath('login.php');
|
||||
header("Location: " . $loginPath);
|
||||
exit;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (!function_exists('cekRole')) {
|
||||
function cekRole($role_wajib) {
|
||||
if (session_status() === PHP_SESSION_NONE) {
|
||||
session_start();
|
||||
}
|
||||
// Jika role user tidak sesuai dengan kriteria halaman, tendang ke dashboard utama
|
||||
if (!isset($_SESSION['role']) || $_SESSION['role'] !== $role_wajib) {
|
||||
$dashboardPath = getRedirectPath('dashboard.php?error=unauthorized');
|
||||
header("Location: " . $dashboardPath);
|
||||
exit;
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user