56 lines
1.3 KiB
PHP
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';
|
|
}
|
|
?>
|