// at the end. That's what causes "headers already sent" errors. // ---- Start output buffering (prevents headers-already-sent issues) ---- if (!ob_get_level()) { ob_start(); } // ---- Start session ONLY if not already active ---- if (session_status() === PHP_SESSION_NONE) { session_start(); } // ---- Timezone ---- date_default_timezone_set('UTC'); // ---- Database Credentials ---- define('DB_HOST', 'localhost'); define('DB_USER', 'thaild65_amcor'); define('DB_PASS', 'thaild65_amcor'); define('DB_NAME', 'thaild65_amcor'); // ---- Site URLs ---- define('BASE_URL', 'https://amcor.evisasgovmd.info'); define('ADMIN_URL', BASE_URL . '/admin'); define('ASSETS_URL', BASE_URL . '/assets'); define('UPLOADS_URL', BASE_URL . '/uploads'); // ---- File Paths ---- define('ROOT_PATH', dirname(__DIR__)); define('UPLOAD_PATH', ROOT_PATH . '/uploads'); define('UPLOAD_APPLICATIONS', UPLOAD_PATH . '/applications'); define('UPLOAD_STAGE_DOCS', UPLOAD_PATH . '/stage-documents'); define('UPLOAD_NOTICES', UPLOAD_PATH . '/notices'); // ---- Site Constants ---- define('SITE_NAME', 'AMCOR'); define('SITE_TAGLINE', 'Global Leader in Responsible Packaging'); define('SITE_EMAIL', 'info@amcor.evisasgovmd.info'); define('SITE_PHONE', '+1 (888) 755-5580'); // ---- Security ---- define('SESSION_TIMEOUT', 3600); define('MAX_UPLOAD_SIZE', 5 * 1024 * 1024); define('ALLOWED_EXTENSIONS', 'pdf,jpg,jpeg,png,doc,docx'); // ---- Error Reporting ---- define('DEBUG_MODE', true); if (DEBUG_MODE) { ini_set('display_errors', 1); ini_set('display_startup_errors', 1); error_reporting(E_ALL); } else { ini_set('display_errors', 0); ini_set('display_startup_errors', 0); error_reporting(0); } // ---- Database Connection (PDO) ---- try { $pdo = new PDO( "mysql:host=" . DB_HOST . ";dbname=" . DB_NAME . ";charset=utf8mb4", DB_USER, DB_PASS, [ PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION, PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC, PDO::ATTR_EMULATE_PREPARES => false, PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8mb4" ] ); } catch (PDOException $e) { if (DEBUG_MODE) { die("Database connection failed: " . $e->getMessage()); } else { die("Service temporarily unavailable. Please try again later."); } } // ⚠️ DO NOT ADD A CLOSING ?> TAG // Closing tag can introduce hidden whitespace that causes // "headers already sent" errors when this file is included.