diff --git a/app/controllers/Controller.php b/app/controllers/Controller.php deleted file mode 100644 index 309b848..0000000 --- a/app/controllers/Controller.php +++ /dev/null @@ -1,25 +0,0 @@ -view = new View(); - } - - protected function render(string $view, array $data = [], string $layout = 'main'): void - { - foreach ($data as $key => $value) { - $this->view->assign($key, $value); - } - $this->view->render($view, $layout); - } -} diff --git a/app/controllers/DatenschutzController.php b/app/controllers/DatenschutzController.php deleted file mode 100644 index 9bb59b6..0000000 --- a/app/controllers/DatenschutzController.php +++ /dev/null @@ -1,18 +0,0 @@ -render('datenschutz/index', [ - 'pageTitle' => 'Datenschutzerklärung – Haus Schleusingen', - 'pageDescription' => 'Datenschutzerklärung der Website haus-schleusingen.de', - 'robots' => 'noindex', - 'canonical' => 'https://haus-schleusingen.de/datenschutz', - ]); - } -} diff --git a/app/controllers/HomeController.php b/app/controllers/HomeController.php deleted file mode 100644 index f6e483b..0000000 --- a/app/controllers/HomeController.php +++ /dev/null @@ -1,187 +0,0 @@ - '', 'lname' => '', 'email' => '', 'phone' => '', 'interest' => 'Besichtigung anfragen', 'message' => '']; - } - - // CSRF-Token generieren (nach Session-Start) - if (empty($_SESSION['csrf_token'])) { - $_SESSION['csrf_token'] = bin2hex(random_bytes(32)); - } - - if ($_SERVER['REQUEST_METHOD'] === 'POST') { - // CSRF-Token validieren - $csrfToken = $_POST['csrf_token'] ?? ''; - if (!hash_equals($_SESSION['csrf_token'] ?? '', $csrfToken)) { - header('Location: /#form-result'); - $_SESSION['form_errors'] = ['Sicherheitsüberprüfung fehlgeschlagen. Bitte versuchen Sie es erneut.']; - exit; - } - - $formData['fname'] = $normalizeContactValue((string) ($_POST['fname'] ?? '')); - $formData['lname'] = $normalizeContactValue((string) ($_POST['lname'] ?? '')); - $formData['email'] = $normalizeContactValue((string) ($_POST['email'] ?? '')); - $formData['phone'] = $normalizeContactValue((string) ($_POST['phone'] ?? '')); - $formData['interest'] = $normalizeContactValue((string) ($_POST['interest'] ?? '')); - $formData['message'] = $normalizeContactValue((string) ($_POST['message'] ?? '')); - - $honeypot = $normalizeContactValue((string) ($_POST['website'] ?? '')); - if ($honeypot !== '') { - header('Location: /#form-result'); - $_SESSION['form_success'] = true; - exit; - } else { - if ($formData['fname'] === '') { - $formErrors[] = 'Bitte geben Sie Ihren Vornamen an.'; - } - if ($formData['lname'] === '') { - $formErrors[] = 'Bitte geben Sie Ihren Nachnamen an.'; - } - if ($formData['email'] === '' || !filter_var($formData['email'], FILTER_VALIDATE_EMAIL)) { - $formErrors[] = 'Bitte geben Sie eine gültige E-Mail-Adresse an.'; - } - if ($formData['message'] === '') { - $formErrors[] = 'Bitte geben Sie eine Nachricht ein.'; - } - - if ($containsHeaderInjection($formData['email']) || $containsHeaderInjection($formData['fname'] . ' ' . $formData['lname'])) { - $formErrors[] = 'Ungültige Zeichen in den Eingabefeldern.'; - } - - $formTime = isset($_POST['form_time']) ? (int) $_POST['form_time'] : 0; - if ($formTime > 0 && (time() - $formTime) < 3) { - $formErrors[] = 'Das Formular wurde zu schnell abgeschickt. Bitte versuchen Sie es erneut.'; - } - - $lastSubmit = $_SESSION['last_contact_submit'] ?? 0; - if ($lastSubmit && (time() - $lastSubmit) < 60) { - $formErrors[] = 'Bitte warten Sie einen Moment vor der nächsten Anfrage.'; - } - - if (empty($formErrors)) { - $to = 'mki@kies-media.de'; - $subject = 'Kontaktanfrage: ' . $formData['interest']; - $body = "Von: {$formData['fname']} {$formData['lname']}\n" - . "E-Mail: {$formData['email']}\n"; - if ($formData['phone'] !== '') { - $body .= "Telefon: {$formData['phone']}\n"; - } - $body .= "Anliegen: {$formData['interest']}\n\n" - . $formData['message']; - - $headers = "From: {$formData['email']}\r\n"; - $headers .= "Reply-To: {$formData['email']}\r\n"; - $headers .= "Content-Type: text/plain; charset=UTF-8\r\n"; - $headers .= "X-Mailer: PHP/" . phpversion(); - - $mailSent = mail($to, $subject, $body, $headers); - - if ($mailSent) { - $_SESSION['last_contact_submit'] = time(); - header('Location: /#form-result'); - $_SESSION['form_success'] = true; - exit; - } else { - $formErrors[] = 'Leider konnte die E-Mail nicht gesendet werden. Bitte versuchen Sie es später erneut oder schreiben Sie uns direkt an mki@kies-media.de.'; - } - } - } - if (!empty($formErrors)) { - header('Location: /#form-result'); - $_SESSION['form_errors'] = $formErrors; - $_SESSION['form_data'] = $formData; - exit; - } - } - - $this->render('home/index', [ - 'formSuccess' => $formSuccess, - 'formErrors' => $formErrors, - 'formData' => $formData, - 'escapeContactValue' => $escapeContactValue, - 'pageTitle' => 'Einfamilienhaus mieten Schleusingen | 227 m², 6 Zimmer | 1.300 € Kaltmiete', - 'pageDescription' => 'Einfamilienhaus zur Langzeitmiete in Schleusingen: 227 m² Wohnfläche, 6 Zimmer, 3 Etagen mit Dachterrasse. Kaltmiete 1.300 €. Bahnhofstraße 10, 98553 Schleusingen. Ab sofort verfügbar.', - 'canonical' => 'https://haus-schleusingen.de/', - 'openGraph' => [ - 'ogTitle' => 'Einfamilienhaus zur Miete in Schleusingen – 227 m², 6 Zimmer', - 'ogDescription' => 'Großzügiges Einfamilienhaus zur Langzeitmiete: 227 m², 6 Zimmer, 3 Etagen + Dachterrasse. Kaltmiete 1.300 €. Ab sofort verfügbar in Schleusingen.', - 'ogImage' => 'https://haus-schleusingen.de/bilder/Außenansicht-2.png', - 'ogUrl' => 'https://haus-schleusingen.de/', - ], - 'structuredData' => json_encode([ - '@context' => 'https://schema.org', - '@type' => 'RealEstateListing', - 'name' => 'Einfamilienhaus zur Miete in Schleusingen', - 'description' => 'Großzügiges Einfamilienhaus zur Langzeitmiete: 227 m² Wohnfläche, 6 Zimmer, 3 Etagen mit Dachterrasse. Kaltmiete 1.300 €.', - 'url' => 'https://haus-schleusingen.de/', - 'image' => 'https://haus-schleusingen.de/bilder/Außenansicht-2.png', - 'datePosted' => '2026-05-14', - 'address' => [ - '@type' => 'PostalAddress', - 'streetAddress' => 'Bahnhofstraße 10', - 'addressLocality' => 'Schleusingen', - 'postalCode' => '98553', - 'addressCountry' => 'DE', - ], - 'offers' => [ - '@type' => 'Offer', - 'price' => '1300', - 'priceCurrency' => 'EUR', - 'priceSpecification' => [ - '@type' => 'UnitPriceSpecification', - 'price' => '1300', - 'priceCurrency' => 'EUR', - 'unitCode' => 'MON', - 'description' => 'Kaltmiete pro Monat', - ], - ], - 'floorSize' => [ - '@type' => 'QuantitativeValue', - 'value' => '227', - 'unitCode' => 'MTK', - ], - 'numberOfRooms' => [ - '@type' => 'QuantitativeValue', - 'value' => '6', - ], - ]), - ]); - } -} diff --git a/app/controllers/ImpressumController.php b/app/controllers/ImpressumController.php deleted file mode 100644 index a7bef04..0000000 --- a/app/controllers/ImpressumController.php +++ /dev/null @@ -1,18 +0,0 @@ -render('impressum/index', [ - 'pageTitle' => 'Impressum – Haus Schleusingen', - 'pageDescription' => 'Impressum der Website haus-schleusingen.de', - 'robots' => 'noindex', - 'canonical' => 'https://haus-schleusingen.de/impressum', - ]); - } -}