diff --git a/backend/config/config.php b/backend/config/config.php index 60968a7..ea8ee0f 100644 --- a/backend/config/config.php +++ b/backend/config/config.php @@ -1,17 +1,6 @@ diff --git a/backend/config/mail-config.php b/backend/config/mail-config.php index 48e59f6..6e5129c 100644 --- a/backend/config/mail-config.php +++ b/backend/config/mail-config.php @@ -1,30 +1,25 @@ 'HexaHost.de Contact Form', 'X-Priority' => '3', @@ -35,22 +30,22 @@ define('ADDITIONAL_HEADERS', [ 'Precedence' => 'bulk' ]); -// Erlaubte Domains für E-Mail-Adressen (optional) + define('ALLOWED_EMAIL_DOMAINS', [ - // Leer lassen für alle Domains zu erlauben - // 'gmail.com', - // 'outlook.com', - // 'web.de', - // 'gmx.de' + + + + + ]); -// Blacklist für E-Mail-Adressen (optional) + define('BLACKLISTED_EMAILS', [ - // 'spam@example.com', - // 'test@test.com' + + ]); -// Überprüfung der E-Mail-Adressen + if (!filter_var(SMTP_FROM_EMAIL, FILTER_VALIDATE_EMAIL)) { die('Ungültige SMTP_FROM_EMAIL Adresse'); } @@ -59,7 +54,7 @@ if (!filter_var(SMTP_TO_EMAIL, FILTER_VALIDATE_EMAIL)) { die('Ungültige SMTP_TO_EMAIL Adresse'); } -// Logging-Funktion + function logEmail($type, $data) { if (!LOG_EMAILS) return; @@ -76,18 +71,18 @@ function logEmail($type, $data) { file_put_contents($logFile, $logEntry, FILE_APPEND | LOCK_EX); } -// Hilfsfunktion für E-Mail-Validierung + function isValidEmail($email) { if (!filter_var($email, FILTER_VALIDATE_EMAIL)) { return false; } - // Prüfe Blacklist + if (in_array($email, BLACKLISTED_EMAILS)) { return false; } - // Prüfe Domain-Whitelist (falls gesetzt) + if (!empty(ALLOWED_EMAIL_DOMAINS)) { $domain = substr(strrchr($email, "@"), 1); if (!in_array($domain, ALLOWED_EMAIL_DOMAINS)) { @@ -98,29 +93,23 @@ function isValidEmail($email) { return true; } -/** - * Hilfsfunktion zum Abrufen der Konfiguration als Array - * Kompatibilität mit contact-handler.php - * - * @param string|null $key Optional: einzelner Schlüssel - * @return mixed Konfigurationsarray oder einzelner Wert - */ + function getHexaHostConfig($key = null) { $config = [ - // Absender/Empfänger + 'from_email' => SMTP_FROM_EMAIL, 'from_name' => 'HexaHost.de Kontaktformular', 'to_email' => SMTP_TO_EMAIL, 'to_name' => 'HexaHost Support', - // Sicherheit + 'max_requests_per_hour' => MAX_REQUESTS_PER_HOUR, 'honeypot_field' => 'website', 'enable_csrf' => ENABLE_CSRF_PROTECTION, 'min_message_length' => MIN_MESSAGE_LENGTH, 'max_message_length' => MAX_MESSAGE_LENGTH, - // Debug + 'debug_mode' => DEBUG_MODE, 'log_errors' => LOG_EMAILS, ]; diff --git a/backend/config/products-config.php b/backend/config/products-config.php index 3f9db46..9d703aa 100644 --- a/backend/config/products-config.php +++ b/backend/config/products-config.php @@ -1,18 +1,9 @@ 'Virtual Private Container', 'short_name' => 'VPC', @@ -112,9 +103,9 @@ $PRODUCTS['vpc'] = [ ], ]; -// ============================================================================ -// VIRTUAL PRIVATE SERVER (VPS) -// ============================================================================ + + + $PRODUCTS['vps'] = [ 'name' => 'Virtual Private Server', 'short_name' => 'VPS', @@ -214,9 +205,9 @@ $PRODUCTS['vps'] = [ ], ]; -// ============================================================================ -// MAIL GATEWAY -// ============================================================================ + + + $PRODUCTS['mail-gateway'] = [ 'name' => 'Mail Gateway', 'short_name' => 'Mail', @@ -316,9 +307,9 @@ $PRODUCTS['mail-gateway'] = [ ], ]; -// ============================================================================ -// WEBHOSTING -// ============================================================================ + + + $PRODUCTS['webhosting'] = [ 'name' => 'Webhosting', 'short_name' => 'Webhosting', @@ -426,68 +417,52 @@ $PRODUCTS['webhosting'] = [ ], ]; -// ============================================================================ -// HILFSFUNKTIONEN -// ============================================================================ -/** - * Alle Produkte abrufen - */ + + + + function getAllProducts() { global $PRODUCTS; return $PRODUCTS; } -/** - * Ein Produkt abrufen - */ + function getProduct($productId) { global $PRODUCTS; return $PRODUCTS[$productId] ?? null; } -/** - * Alle Pakete eines Produkts abrufen - */ + function getProductPackages($productId) { global $PRODUCTS; return $PRODUCTS[$productId]['packages'] ?? []; } -/** - * Ein bestimmtes Paket abrufen - */ + function getPackage($productId, $packageId) { global $PRODUCTS; return $PRODUCTS[$productId]['packages'][$packageId] ?? null; } -/** - * Preis eines Pakets abrufen - */ + function getPackagePrice($productId, $packageId) { $package = getPackage($productId, $packageId); return $package['price'] ?? null; } -/** - * Minimalen Preis eines Produkts abrufen - */ + function getMinPrice($productId) { global $PRODUCTS; return $PRODUCTS[$productId]['min_price'] ?? null; } -/** - * Preis formatiert ausgeben - */ + function formatPrice($price, $withCurrency = true) { return $withCurrency ? $price . '€' : $price; } -/** - * Generiert HTML für eine Paket-Karte - */ + function renderPackageCard($productId, $packageId, $package) { $featuredClass = $package['featured'] ? ' featured' : ''; $featuredBadge = $package['featured'] ? '