Files
2026-06-10 09:50:45 +00:00

56 lines
1.3 KiB
PHP

<?php
// koneksi.php - versi deploy Coolify
if (session_status() === PHP_SESSION_NONE) {
session_start();
}
$host = getenv('DB_HOST') ?: 'localhost';
$user = getenv('DB_USER') ?: 'root';
$pass = getenv('DB_PASS') ?: (getenv('DB_PASSWORD') ?: '');
$db = getenv('DB_NAME') ?: 'db_bantuan';
$port = (int)(getenv('DB_PORT') ?: 3306);
define('APP_NAME', 'WebGIS Poverty Mapping');
define('APP_VERSION', '2.0');
$conn = new mysqli($host, $user, $pass, $db, $port);
if ($conn->connect_error) {
die(json_encode([
'status' => 'error',
'message' => 'Koneksi DB gagal: ' . $conn->connect_error
]));
}
$conn->set_charset('utf8mb4');
function bersih($str, $conn) {
return $conn->real_escape_string(htmlspecialchars(strip_tags(trim($str))));
}
function cekLogin() {
if (!isset($_SESSION['user_id'])) {
header('Location: login.php');
exit;
}
}
function cekRole(...$roles) {
if (!in_array($_SESSION['role'] ?? '', $roles)) {
header('Location: index.php?error=akses_ditolak');
exit;
}
}
function rupiah($angka) {
return 'Rp ' . number_format($angka, 0, ',', '.');
}
function hitungUsia($tgl) {
if (!$tgl || $tgl === '0000-00-00') return '-';
$lahir = new DateTime($tgl);
$sekarang = new DateTime();
return $lahir->diff($sekarang)->y . ' th';
}
?>