Initial commit of unified WebGIS projects

This commit is contained in:
ilham_gmail
2026-06-11 17:42:40 +07:00
commit a0c61f2bc2
64 changed files with 7924 additions and 0 deletions
+35
View File
@@ -0,0 +1,35 @@
<?php
include_once __DIR__ . '/config.php';
function get_request_api_key(){
// check header first
$headers = null;
if(function_exists('getallheaders')){
$headers = getallheaders();
}
if($headers){
foreach($headers as $k => $v){
if(strtolower($k) === 'x-api-key') return $v;
}
}
// fallback to header in $_SERVER
if(isset($_SERVER['HTTP_X_API_KEY'])) return $_SERVER['HTTP_X_API_KEY'];
// fallback to JSON body or POST
$input = json_decode(file_get_contents('php://input'), true);
if(isset($input['api_key'])) return $input['api_key'];
if(isset($_POST['api_key'])) return $_POST['api_key'];
return null;
}
function require_api_key(){
$key = get_request_api_key();
if(!$key || $key !== API_KEY){
http_response_code(401);
header('Content-Type: application/json; charset=utf-8');
echo json_encode(['success'=>false,'error'=>'unauthorized']);
exit;
}
}
+29
View File
@@ -0,0 +1,29 @@
<?php
// Load environment from project root .env if present, then read API_KEY
function load_dotenv($path){
if(!file_exists($path)) return;
$lines = file($path, FILE_IGNORE_NEW_LINES|FILE_SKIP_EMPTY_LINES);
foreach($lines as $line){
if(trim($line)==='' || strpos(trim($line),'#')===0) continue;
if(strpos($line,'=')===false) continue;
list($k,$v) = explode('=', $line, 2);
$k = trim($k); $v = trim($v);
// strip optional quotes
if((substr($v,0,1)==='"' && substr($v,-1)==='"') || (substr($v,0,1)==="'" && substr($v,-1)==="'")){
$v = substr($v,1,-1);
}
putenv("$k=$v");
$_ENV[$k] = $v;
}
}
$envPath = realpath(__DIR__ . '/../../.env');
if($envPath){ load_dotenv($envPath); }
$apiKey = getenv('API_KEY');
if(!$apiKey) {
// fallback (development) - but prefer .env or system env in production
$apiKey = '8f3b7e6a9c4d2f1a6b8c9d0e4f7a1b2c';
}
define('API_KEY', $apiKey);
?>
+15
View File
@@ -0,0 +1,15 @@
<?php
include_once __DIR__ . '/config.php';
$dbHost = getenv('DB_HOST') ?: 'localhost';
$dbPort = (int)(getenv('DB_PORT') ?: 3306);
$dbUser = getenv('DB_USER') ?: 'root';
$dbPass = getenv('DB_PASS') ?: 'ilham';
$dbName = getenv('DB_NAME') ?: 'spbu_db';
$conn = new mysqli($dbHost, $dbUser, $dbPass, $dbName, $dbPort);
if ($conn->connect_error) {
die("Koneksi gagal: " . $conn->connect_error);
}
?>