Bootstrap-Website komplett: Parallax Hero, Logo, PHPMailer, responsive Banner-Bilder und neue Baumaschinen (CAT 906, Volvo ZL 302)
10
.gitignore
vendored
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
# Ignoriere Editor/System-Dateien
|
||||||
|
.DS_Store
|
||||||
|
Thumbs.db
|
||||||
|
*.swp
|
||||||
|
.vscode/
|
||||||
|
.idea/
|
||||||
|
|
||||||
|
# Backup-Dateien
|
||||||
|
*.bak
|
||||||
|
*~
|
||||||
18
.htaccess
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
# Schutz der Konfigurationsdatei
|
||||||
|
<Files "config.php">
|
||||||
|
Order allow,deny
|
||||||
|
Deny from all
|
||||||
|
</Files>
|
||||||
|
|
||||||
|
# Schutz der PHPMailer-Dateien (nur über PHP-Includes erreichbar)
|
||||||
|
<FilesMatch "^(PHPMailer|SMTP|Exception)\.php$">
|
||||||
|
Order allow,deny
|
||||||
|
Deny from all
|
||||||
|
</FilesMatch>
|
||||||
|
|
||||||
|
# Optional: Schutz vor Directory Browsing
|
||||||
|
Options -Indexes
|
||||||
|
|
||||||
|
# Optional: PHP Fehler nicht anzeigen (für Produktivbetrieb)
|
||||||
|
php_flag display_errors Off
|
||||||
|
php_flag log_errors On
|
||||||
257
PHPMAILER-ANLEITUNG.md
Normal file
@@ -0,0 +1,257 @@
|
|||||||
|
# 📧 PHPMailer Einrichtungsanleitung
|
||||||
|
|
||||||
|
Diese Anleitung erklärt, wie Sie das Kontaktformular mit PHPMailer auf Ihrem Webserver einrichten.
|
||||||
|
|
||||||
|
## ✅ Was wurde installiert
|
||||||
|
|
||||||
|
```
|
||||||
|
webseite/
|
||||||
|
├── config.php # E-Mail-Konfiguration (WICHTIG: Anpassen!)
|
||||||
|
├── send-mail.php # Mail-Versand-Script
|
||||||
|
├── .htaccess # Schutz der Konfiguration
|
||||||
|
└── phpmailer/ # PHPMailer Bibliothek
|
||||||
|
├── PHPMailer.php
|
||||||
|
├── SMTP.php
|
||||||
|
└── Exception.php
|
||||||
|
```
|
||||||
|
|
||||||
|
## 🔧 Schritt 1: Konfiguration anpassen
|
||||||
|
|
||||||
|
Öffnen Sie `config.php` und passen Sie folgende Einstellungen an:
|
||||||
|
|
||||||
|
### E-Mail Grundeinstellungen
|
||||||
|
|
||||||
|
```php
|
||||||
|
define('MAIL_TO', 'baumer@traidendorf.de'); // IHR POSTFACH
|
||||||
|
define('MAIL_FROM', 'noreply@ihre-domain.de'); // Absender-Adresse
|
||||||
|
```
|
||||||
|
|
||||||
|
### Option A: Standard PHP mail() Funktion (Einfachste Lösung)
|
||||||
|
|
||||||
|
Die meisten Webhosting-Anbieter unterstützen die `mail()` Funktion direkt:
|
||||||
|
|
||||||
|
```php
|
||||||
|
define('USE_SMTP', false); // So belassen
|
||||||
|
```
|
||||||
|
|
||||||
|
**Vorteile:**
|
||||||
|
- ✅ Keine zusätzliche Konfiguration nötig
|
||||||
|
- ✅ Funktioniert bei den meisten Hostern out-of-the-box
|
||||||
|
|
||||||
|
**Nachteile:**
|
||||||
|
- ⚠️ E-Mails landen manchmal im Spam
|
||||||
|
- ⚠️ Nicht alle Hoster erlauben mail()
|
||||||
|
|
||||||
|
**Geeignet für:** Strato, 1&1, All-Inkl, Host Europe, etc.
|
||||||
|
|
||||||
|
### Option B: SMTP (Zuverlässigste Lösung)
|
||||||
|
|
||||||
|
Für professionellen Versand mit SMTP:
|
||||||
|
|
||||||
|
```php
|
||||||
|
define('USE_SMTP', true);
|
||||||
|
define('SMTP_HOST', 'smtp.ihre-domain.de'); // SMTP-Server
|
||||||
|
define('SMTP_PORT', 587); // 587 für TLS, 465 für SSL
|
||||||
|
define('SMTP_SECURE', 'tls'); // 'tls' oder 'ssl'
|
||||||
|
define('SMTP_USERNAME', 'ihre-email@ihre-domain.de');
|
||||||
|
define('SMTP_PASSWORD', 'ihr-sicheres-passwort');
|
||||||
|
```
|
||||||
|
|
||||||
|
**Vorteile:**
|
||||||
|
- ✅ Zuverlässigster Versand
|
||||||
|
- ✅ Bessere Spam-Bewertung
|
||||||
|
- ✅ Authentifizierung
|
||||||
|
|
||||||
|
**SMTP-Einstellungen für beliebte Hoster:**
|
||||||
|
|
||||||
|
#### Strato
|
||||||
|
```php
|
||||||
|
define('SMTP_HOST', 'smtp.strato.de');
|
||||||
|
define('SMTP_PORT', 587);
|
||||||
|
define('SMTP_SECURE', 'tls');
|
||||||
|
define('SMTP_USERNAME', 'ihre-email@ihre-domain.de');
|
||||||
|
```
|
||||||
|
|
||||||
|
#### 1&1 / IONOS
|
||||||
|
```php
|
||||||
|
define('SMTP_HOST', 'smtp.ionos.de');
|
||||||
|
define('SMTP_PORT', 587);
|
||||||
|
define('SMTP_SECURE', 'tls');
|
||||||
|
define('SMTP_USERNAME', 'ihre-email@ihre-domain.de');
|
||||||
|
```
|
||||||
|
|
||||||
|
#### All-Inkl
|
||||||
|
```php
|
||||||
|
define('SMTP_HOST', 'ihr-servername.kasserver.com');
|
||||||
|
define('SMTP_PORT', 587);
|
||||||
|
define('SMTP_SECURE', 'tls');
|
||||||
|
define('SMTP_USERNAME', 'ihre-email@ihre-domain.de');
|
||||||
|
```
|
||||||
|
|
||||||
|
#### Gmail (für Tests)
|
||||||
|
```php
|
||||||
|
define('SMTP_HOST', 'smtp.gmail.com');
|
||||||
|
define('SMTP_PORT', 587);
|
||||||
|
define('SMTP_SECURE', 'tls');
|
||||||
|
define('SMTP_USERNAME', 'ihre-gmail@gmail.com');
|
||||||
|
define('SMTP_PASSWORD', 'app-spezifisches-passwort'); // Nicht Ihr normales Passwort!
|
||||||
|
```
|
||||||
|
⚠️ Bei Gmail: [App-spezifisches Passwort erstellen](https://support.google.com/accounts/answer/185833)
|
||||||
|
|
||||||
|
## 🚀 Schritt 2: Auf Webserver hochladen
|
||||||
|
|
||||||
|
Laden Sie alle Dateien per FTP auf Ihren Webserver:
|
||||||
|
|
||||||
|
```
|
||||||
|
/public_html/ (oder /htdocs/, /www/)
|
||||||
|
├── index.html
|
||||||
|
├── kontakt.html
|
||||||
|
├── config.php ← WICHTIG: Passwort hier drin!
|
||||||
|
├── send-mail.php
|
||||||
|
├── .htaccess
|
||||||
|
├── phpmailer/
|
||||||
|
├── css/
|
||||||
|
├── js/
|
||||||
|
└── ...
|
||||||
|
```
|
||||||
|
|
||||||
|
## 🧪 Schritt 3: Testen
|
||||||
|
|
||||||
|
1. Öffnen Sie Ihre Website im Browser
|
||||||
|
2. Gehen Sie zur Kontaktseite
|
||||||
|
3. Füllen Sie das Formular aus
|
||||||
|
4. Senden Sie eine Test-Nachricht
|
||||||
|
5. Prüfen Sie Ihr Postfach (auch Spam-Ordner!)
|
||||||
|
|
||||||
|
### Fehlerbehebung
|
||||||
|
|
||||||
|
#### E-Mail kommt nicht an
|
||||||
|
|
||||||
|
**Lösung 1: Logfile prüfen**
|
||||||
|
- Schauen Sie im `error_log` Ihres Webservers
|
||||||
|
- Meist zu finden im Root-Verzeichnis oder `/logs/`
|
||||||
|
|
||||||
|
**Lösung 2: SMTP statt mail() verwenden**
|
||||||
|
- Setzen Sie `USE_SMTP` auf `true` in der `config.php`
|
||||||
|
- Konfigurieren Sie die SMTP-Einstellungen
|
||||||
|
|
||||||
|
**Lösung 3: PHP mail() aktivieren**
|
||||||
|
- Kontaktieren Sie Ihren Hoster
|
||||||
|
- Fragen Sie, ob die `mail()` Funktion aktiviert ist
|
||||||
|
|
||||||
|
#### E-Mails landen im Spam
|
||||||
|
|
||||||
|
**Lösung:**
|
||||||
|
- Verwenden Sie SMTP statt mail()
|
||||||
|
- Stellen Sie sicher, dass `MAIL_FROM` eine echte E-Mail Ihrer Domain ist
|
||||||
|
- Richten Sie SPF/DKIM Records ein (bei Ihrem Hoster)
|
||||||
|
|
||||||
|
#### Fehler "Could not instantiate mail function"
|
||||||
|
|
||||||
|
**Lösung:**
|
||||||
|
- Die PHP `mail()` Funktion ist deaktiviert
|
||||||
|
- Wechseln Sie zu SMTP (`USE_SMTP = true`)
|
||||||
|
|
||||||
|
#### Fehler "SMTP connect() failed"
|
||||||
|
|
||||||
|
**Lösung:**
|
||||||
|
- SMTP-Host falsch → Prüfen Sie bei Ihrem Hoster
|
||||||
|
- Port falsch → Meist 587 (TLS) oder 465 (SSL)
|
||||||
|
- Benutzername/Passwort falsch
|
||||||
|
- Firewall blockiert → Kontaktieren Sie Ihren Hoster
|
||||||
|
|
||||||
|
## 🔒 Sicherheit
|
||||||
|
|
||||||
|
### WICHTIG: Schützen Sie config.php!
|
||||||
|
|
||||||
|
Die `.htaccess` Datei schützt bereits Ihre `config.php`. Überprüfen Sie:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Test: Diese URL sollte NICHT funktionieren:
|
||||||
|
https://ihre-domain.de/config.php
|
||||||
|
```
|
||||||
|
|
||||||
|
Sie sollten einen "403 Forbidden" Fehler sehen.
|
||||||
|
|
||||||
|
### Weitere Sicherheitsmaßnahmen
|
||||||
|
|
||||||
|
1. **Sichere Passwörter verwenden**
|
||||||
|
- Mindestens 16 Zeichen
|
||||||
|
- Groß-/Kleinbuchstaben, Zahlen, Sonderzeichen
|
||||||
|
|
||||||
|
2. **SSL/HTTPS verwenden**
|
||||||
|
- Ihr Hoster sollte ein kostenloses Let's Encrypt Zertifikat anbieten
|
||||||
|
|
||||||
|
3. **Rate Limiting ist bereits aktiv**
|
||||||
|
- Maximal 1 E-Mail pro Minute pro IP-Adresse
|
||||||
|
- Schutz gegen Spam-Bots
|
||||||
|
|
||||||
|
4. **Honeypot ist bereits integriert**
|
||||||
|
- Verstecktes Feld zum Spam-Schutz
|
||||||
|
|
||||||
|
## 📊 Features des Kontaktformulars
|
||||||
|
|
||||||
|
✅ **Spam-Schutz**
|
||||||
|
- Honeypot-Feld (verstecktes Feld für Bots)
|
||||||
|
- Rate Limiting (max. 1 Mail pro Minute)
|
||||||
|
- Eingabe-Validierung
|
||||||
|
|
||||||
|
✅ **Benutzerfreundlich**
|
||||||
|
- Erfolgs-/Fehlermeldungen
|
||||||
|
- Formular-Vorausfüllung (Maschine aus Link)
|
||||||
|
- Loading-Animation beim Absenden
|
||||||
|
|
||||||
|
✅ **Professionell**
|
||||||
|
- HTML-E-Mails mit Styling
|
||||||
|
- Plain-Text Fallback
|
||||||
|
- IP-Adresse und Zeitstempel in E-Mail
|
||||||
|
|
||||||
|
✅ **Datenschutz**
|
||||||
|
- Keine Daten werden extern gespeichert
|
||||||
|
- Alles auf Ihrem Server
|
||||||
|
- DSGVO-konform
|
||||||
|
|
||||||
|
## 🎯 Anpassungen
|
||||||
|
|
||||||
|
### E-Mail-Design ändern
|
||||||
|
|
||||||
|
Bearbeiten Sie in `send-mail.php` den HTML-Code ab Zeile ~95:
|
||||||
|
|
||||||
|
```php
|
||||||
|
$mailBody = '
|
||||||
|
<html>
|
||||||
|
<!-- Hier können Sie das Design anpassen -->
|
||||||
|
</html>
|
||||||
|
';
|
||||||
|
```
|
||||||
|
|
||||||
|
### Weiterleitungs-URLs ändern
|
||||||
|
|
||||||
|
In `config.php`:
|
||||||
|
|
||||||
|
```php
|
||||||
|
define('SUCCESS_URL', 'kontakt.html?success=1');
|
||||||
|
define('ERROR_URL', 'kontakt.html?error=1');
|
||||||
|
```
|
||||||
|
|
||||||
|
### Zusätzliche Formularfelder
|
||||||
|
|
||||||
|
1. Feld in `kontakt.html` hinzufügen
|
||||||
|
2. Feld in `send-mail.php` validieren und einbinden
|
||||||
|
3. E-Mail-Template in `send-mail.php` anpassen
|
||||||
|
|
||||||
|
## 📞 Support
|
||||||
|
|
||||||
|
**Bei technischen Problemen:**
|
||||||
|
1. Prüfen Sie das `error_log` auf Ihrem Server
|
||||||
|
2. Kontaktieren Sie Ihren Webhoster für SMTP-Einstellungen
|
||||||
|
3. Testen Sie zunächst mit `USE_SMTP = false` (mail() Funktion)
|
||||||
|
|
||||||
|
**Hoster-Support fragen nach:**
|
||||||
|
- "PHP mail() Funktion aktiviert?"
|
||||||
|
- "SMTP-Server Zugangsdaten für E-Mail-Versand"
|
||||||
|
- "Welcher Port für SMTP? (587 oder 465)"
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
**Viel Erfolg! 🚀**
|
||||||
102
README.md
@@ -0,0 +1,102 @@
|
|||||||
|
# 🚜 Baumer Maschinenverleih - Bootstrap Website
|
||||||
|
|
||||||
|
Moderne, responsive Website für Andreas Baumer Maschinenverleih mit Bootstrap 5.
|
||||||
|
|
||||||
|
## ✨ Features
|
||||||
|
|
||||||
|
- ✅ **Keine Build-Tools** - Einfach per FTP hochladen
|
||||||
|
- ✅ **Komplett offline** - Bootstrap lokal eingebunden
|
||||||
|
- ✅ **PHPMailer** - Professionelles Kontaktformular ohne externe Dienste
|
||||||
|
- ✅ **Bootstrap 5** - Modernes, responsives Design
|
||||||
|
- ✅ **JSON-basiert** - Maschinen in `data/maschinen.json`
|
||||||
|
- ✅ **Spam-Schutz** - Honeypot & Rate Limiting integriert
|
||||||
|
- ✅ **Komplett responsive** - Funktioniert auf allen Geräten
|
||||||
|
|
||||||
|
## 📁 Projektstruktur
|
||||||
|
|
||||||
|
```
|
||||||
|
webseite/
|
||||||
|
├── index.html # Startseite
|
||||||
|
├── kontakt.html # Kontaktseite mit PHPMailer
|
||||||
|
├── impressum.html # Impressum
|
||||||
|
├── datenschutz.html # Datenschutz
|
||||||
|
├── config.php # E-Mail Konfiguration (ANPASSEN!)
|
||||||
|
├── send-mail.php # Mail-Versand-Script
|
||||||
|
├── .htaccess # Sicherheit & Schutz
|
||||||
|
│
|
||||||
|
├── css/
|
||||||
|
│ ├── bootstrap.min.css # Bootstrap CSS (lokal)
|
||||||
|
│ ├── bootstrap-icons.css # Bootstrap Icons (lokal)
|
||||||
|
│ └── style.css # Custom Styling
|
||||||
|
│
|
||||||
|
├── js/
|
||||||
|
│ ├── bootstrap.bundle.min.js # Bootstrap JS (lokal)
|
||||||
|
│ └── main.js # Custom JavaScript
|
||||||
|
│
|
||||||
|
├── phpmailer/ # PHPMailer Bibliothek
|
||||||
|
│ ├── PHPMailer.php
|
||||||
|
│ ├── SMTP.php
|
||||||
|
│ └── Exception.php
|
||||||
|
│
|
||||||
|
├── fonts/
|
||||||
|
**⚠️ Wichtig:** Das Kontaktformular funktioniert nur auf einem Webserver mit PHP!
|
||||||
|
|
||||||
|
## 📧 Kontaktformular einrichten
|
||||||
|
|
||||||
|
Das Kontaktformular verwendet PHPMailer und ist bereits vollständig integriert.
|
||||||
|
|
||||||
|
**Schnellstart:**
|
||||||
|
|
||||||
|
1. Öffnen Sie `config.php`
|
||||||
|
2. Tragen Sie Ihre E-Mail ein:
|
||||||
|
```php
|
||||||
|
define('MAIL_TO', 'baumer@traidendorf.de');
|
||||||
|
```
|
||||||
|
3. Fertig! (Bei den meisten Hostern funktioniert es sofort)
|
||||||
|
|
||||||
|
**Ausführliche Anleitung:** Siehe [PHPMAILER-ANLEITUNG.md](PHPMAILER-ANLEITUNG.md)
|
||||||
|
|
||||||
|
### SMTP konfigurieren (optional, für bessere Zustellbarkeit)
|
||||||
|
|
||||||
|
Falls E-Mails nicht ankommen, SMTP in `config.php` aktivieren:
|
||||||
|
|
||||||
|
```php
|
||||||
|
define('USE_SMTP', true);
|
||||||
|
define('SMTP_HOST', 'smtp.ihre-domain.de');
|
||||||
|
define('SMTP_USERNAME', 'ihre-email@ihre-domain.de');
|
||||||
|
define('SMTP_PASSWORD', 'ihr-passwort');
|
||||||
|
``` # Icon Font (lokal)
|
||||||
|
│ └── bootstrap-icons.woff # Icon Font (lokal)
|
||||||
|
│
|
||||||
|
├── data/
|
||||||
|
│ └── maschinen.json # Alle Maschinen (editierbar!)
|
||||||
|
│
|
||||||
|
└── images/ # Bilder (optional)
|
||||||
|
```
|
||||||
|
|
||||||
|
## 🚀 Website öffnen
|
||||||
|
|
||||||
|
Einfach `index.html` im Browser öffnen oder per FTP auf Webserver hochladen.
|
||||||
|
|
||||||
|
## ✏️ Neue Maschine hinzufügen
|
||||||
|
|
||||||
|
In `data/maschinen.json` einen neuen Eintrag hinzufügen:
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"id": "neue-maschine",
|
||||||
|
"title": "Neue Maschine",
|
||||||
|
"preis": "50€/Tag",
|
||||||
|
"beschreibung": "Beschreibung...",
|
||||||
|
"besonderheiten": ["Feature 1", "Feature 2"]
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
## 📧 Kontaktformular
|
||||||
|
|
||||||
|
In `kontakt.html` Formspree-ID eintragen:
|
||||||
|
```html
|
||||||
|
<form action="https://formspree.io/f/YOUR_FORM_ID" method="POST">
|
||||||
|
```
|
||||||
|
|
||||||
|
Mehr Details und Anleitungen in der ausführlichen Dokumentation oben! 📚
|
||||||
38
config.php
Normal file
@@ -0,0 +1,38 @@
|
|||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* E-Mail Konfiguration für Kontaktformular
|
||||||
|
*
|
||||||
|
* WICHTIG: Diese Datei enthält sensible Daten!
|
||||||
|
* Bitte nicht öffentlich zugänglich machen (.htaccess verwenden)
|
||||||
|
*/
|
||||||
|
|
||||||
|
// E-Mail Einstellungen
|
||||||
|
define('MAIL_TO', 'baumer@traidendorf.de'); // Empfänger-E-Mail
|
||||||
|
define('MAIL_FROM', 'noreply@baumer.traidendorf.de'); // Absender-E-Mail
|
||||||
|
define('MAIL_FROM_NAME', 'Kontaktformular Baumer');
|
||||||
|
|
||||||
|
// SMTP Einstellungen (für sicheres Versenden)
|
||||||
|
// Option 1: SMTP verwenden (empfohlen für zuverlässiges Versenden)
|
||||||
|
define('USE_SMTP', false); // Auf true setzen, wenn SMTP verwendet werden soll
|
||||||
|
define('SMTP_HOST', 'smtp.example.com'); // z.B. smtp.strato.de, smtp.1und1.de
|
||||||
|
define('SMTP_PORT', 587); // 587 für TLS, 465 für SSL
|
||||||
|
define('SMTP_SECURE', 'tls'); // 'tls' oder 'ssl'
|
||||||
|
define('SMTP_USERNAME', 'ihre-email@example.com');
|
||||||
|
define('SMTP_PASSWORD', 'ihr-passwort');
|
||||||
|
|
||||||
|
// Option 2: Standard PHP mail() Funktion
|
||||||
|
// Wenn USE_SMTP = false, wird die normale mail() Funktion verwendet
|
||||||
|
// Dies funktioniert auf den meisten Webservern, ist aber weniger zuverlässig
|
||||||
|
|
||||||
|
// Erfolgs-URL (wohin nach erfolgreichem Absenden geleitet wird)
|
||||||
|
define('SUCCESS_URL', 'kontakt.html?success=1');
|
||||||
|
|
||||||
|
// Fehler-URL
|
||||||
|
define('ERROR_URL', 'kontakt.html?error=1');
|
||||||
|
|
||||||
|
// Spam-Schutz: Honeypot-Feld Name (sollte leer bleiben)
|
||||||
|
define('HONEYPOT_FIELD', 'website');
|
||||||
|
|
||||||
|
// Rate Limiting: Max. Anfragen pro IP in Sekunden
|
||||||
|
define('RATE_LIMIT_SECONDS', 60); // 1 Minute zwischen Anfragen
|
||||||
|
?>
|
||||||
2078
css/bootstrap-icons.css
vendored
Normal file
6
css/bootstrap.min.css
vendored
Normal file
262
css/style.css
Normal file
@@ -0,0 +1,262 @@
|
|||||||
|
:root {
|
||||||
|
--primary-color: #2c5f2d;
|
||||||
|
--secondary-color: #97bc62;
|
||||||
|
--accent-color: #ff8c00;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Custom Bootstrap Theme Colors */
|
||||||
|
.bg-primary {
|
||||||
|
background-color: var(--primary-color) !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.btn-primary {
|
||||||
|
background-color: var(--primary-color);
|
||||||
|
border-color: var(--primary-color);
|
||||||
|
}
|
||||||
|
|
||||||
|
.btn-primary:hover {
|
||||||
|
background-color: #234a24;
|
||||||
|
border-color: #234a24;
|
||||||
|
}
|
||||||
|
|
||||||
|
.text-primary {
|
||||||
|
color: var(--primary-color) !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.btn-outline-primary {
|
||||||
|
color: var(--primary-color);
|
||||||
|
border-color: var(--primary-color);
|
||||||
|
}
|
||||||
|
|
||||||
|
.btn-outline-primary:hover {
|
||||||
|
background-color: var(--primary-color);
|
||||||
|
border-color: var(--primary-color);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Header Styling */
|
||||||
|
.navbar-brand {
|
||||||
|
font-size: 1.5rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.navbar-logo {
|
||||||
|
height: 50px;
|
||||||
|
width: auto;
|
||||||
|
max-width: 200px;
|
||||||
|
object-fit: contain;
|
||||||
|
}
|
||||||
|
|
||||||
|
.contact-bar a:hover {
|
||||||
|
color: var(--primary-color) !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Hero Section mit Parallax */
|
||||||
|
.hero-section {
|
||||||
|
position: relative;
|
||||||
|
min-height: 500px;
|
||||||
|
background-image: url('../images/banner_home-sm.jpg');
|
||||||
|
background-attachment: fixed;
|
||||||
|
background-position: center;
|
||||||
|
background-repeat: no-repeat;
|
||||||
|
background-size: cover;
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Responsive Banner Bilder */
|
||||||
|
@media (min-width: 768px) {
|
||||||
|
.hero-section {
|
||||||
|
background-image: url('../images/banner_home-md.jpg');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@media (min-width: 1200px) {
|
||||||
|
.hero-section {
|
||||||
|
background-image: url('../images/banner_home-lg.jpg');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@media (min-width: 1920px) {
|
||||||
|
.hero-section {
|
||||||
|
background-image: url('../images/banner_home-xl.jpg');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Parallax auf mobilen Geräten deaktivieren für bessere Performance */
|
||||||
|
@media (max-width: 768px) {
|
||||||
|
.hero-section {
|
||||||
|
background-attachment: scroll;
|
||||||
|
min-height: 400px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.hero-overlay {
|
||||||
|
position: absolute;
|
||||||
|
top: 0;
|
||||||
|
left: 0;
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
background: rgba(44, 95, 45, 0.7);
|
||||||
|
z-index: 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
.hero-section .container {
|
||||||
|
z-index: 2;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Card Styling */
|
||||||
|
.hover-card {
|
||||||
|
transition: transform 0.3s ease, box-shadow 0.3s ease;
|
||||||
|
}
|
||||||
|
|
||||||
|
.hover-card:hover {
|
||||||
|
transform: translateY(-5px);
|
||||||
|
box-shadow: 0 10px 25px rgba(0, 0, 0, 0.15) !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.card-header {
|
||||||
|
background: linear-gradient(135deg, var(--primary-color), var(--secondary-color));
|
||||||
|
}
|
||||||
|
|
||||||
|
.preis-box {
|
||||||
|
padding: 1rem;
|
||||||
|
background-color: #f8f9fa;
|
||||||
|
border-radius: 0.5rem;
|
||||||
|
margin-top: 1rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Besonderheiten Liste */
|
||||||
|
.list-unstyled li {
|
||||||
|
padding: 0.3rem 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Specs Badges */
|
||||||
|
.specs .badge {
|
||||||
|
font-size: 0.85rem;
|
||||||
|
font-weight: normal;
|
||||||
|
padding: 0.5rem 0.75rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* CTA Section */
|
||||||
|
.cta-section {
|
||||||
|
background: linear-gradient(135deg, var(--primary-color), var(--secondary-color));
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Footer */
|
||||||
|
footer h5 {
|
||||||
|
font-weight: 600;
|
||||||
|
}
|
||||||
|
|
||||||
|
footer a:hover {
|
||||||
|
color: var(--secondary-color) !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Kontaktformular */
|
||||||
|
.form-control:focus,
|
||||||
|
.form-select:focus {
|
||||||
|
border-color: var(--primary-color);
|
||||||
|
box-shadow: 0 0 0 0.25rem rgba(44, 95, 45, 0.25);
|
||||||
|
}
|
||||||
|
|
||||||
|
.contact-info-box {
|
||||||
|
background: linear-gradient(135deg, var(--primary-color), var(--secondary-color));
|
||||||
|
color: white;
|
||||||
|
padding: 2rem;
|
||||||
|
border-radius: 0.5rem;
|
||||||
|
height: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.contact-info-box h4 {
|
||||||
|
margin-bottom: 1.5rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.contact-info-box .info-item {
|
||||||
|
margin-bottom: 1.5rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.contact-info-box .info-item i {
|
||||||
|
font-size: 1.5rem;
|
||||||
|
margin-right: 1rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.contact-info-box a {
|
||||||
|
color: white;
|
||||||
|
text-decoration: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.contact-info-box a:hover {
|
||||||
|
text-decoration: underline;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Impressum / Datenschutz */
|
||||||
|
.content-section {
|
||||||
|
max-width: 900px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.content-section h2 {
|
||||||
|
color: var(--primary-color);
|
||||||
|
margin-top: 2rem;
|
||||||
|
margin-bottom: 1rem;
|
||||||
|
font-size: 1.5rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.content-section h3 {
|
||||||
|
color: var(--primary-color);
|
||||||
|
margin-top: 1.5rem;
|
||||||
|
margin-bottom: 0.75rem;
|
||||||
|
font-size: 1.25rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.content-section h4 {
|
||||||
|
color: #333;
|
||||||
|
margin-top: 1rem;
|
||||||
|
margin-bottom: 0.5rem;
|
||||||
|
font-size: 1.1rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Responsive */
|
||||||
|
@media (max-width: 768px) {
|
||||||
|
.navbar-brand {
|
||||||
|
font-size: 1.2rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.hero-section h1 {
|
||||||
|
font-size: 2rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.contact-bar {
|
||||||
|
font-size: 0.9rem;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Scroll to Top Button (optional) */
|
||||||
|
.scroll-to-top {
|
||||||
|
position: fixed;
|
||||||
|
bottom: 2rem;
|
||||||
|
right: 2rem;
|
||||||
|
display: none;
|
||||||
|
width: 3rem;
|
||||||
|
height: 3rem;
|
||||||
|
background-color: var(--primary-color);
|
||||||
|
color: white;
|
||||||
|
border-radius: 50%;
|
||||||
|
text-align: center;
|
||||||
|
line-height: 3rem;
|
||||||
|
cursor: pointer;
|
||||||
|
z-index: 1000;
|
||||||
|
transition: all 0.3s ease;
|
||||||
|
}
|
||||||
|
|
||||||
|
.scroll-to-top:hover {
|
||||||
|
background-color: var(--secondary-color);
|
||||||
|
transform: translateY(-5px);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Loading Animation (optional) */
|
||||||
|
.loading {
|
||||||
|
text-align: center;
|
||||||
|
padding: 3rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.spinner-border {
|
||||||
|
color: var(--primary-color);
|
||||||
|
}
|
||||||
177
data/maschinen.json
Normal file
@@ -0,0 +1,177 @@
|
|||||||
|
{
|
||||||
|
"baumaschinen": [
|
||||||
|
{
|
||||||
|
"id": "radlader-cat-906",
|
||||||
|
"title": "CAT 906 Radlader",
|
||||||
|
"preis": "250€/Tag",
|
||||||
|
"preisMehrtagig": "ab dem 2. Tag 220€/Tag",
|
||||||
|
"gewicht": "5.7 Tonnen",
|
||||||
|
"beschreibung": "Leistungsstarker CAT 906 Kompaktradlader für vielseitige Erdbewegungen und Transportarbeiten. Ideal für Baustellen, Landwirtschaft und Garten- und Landschaftsbau. Kombiniert hohe Leistung mit kompakten Abmessungen.",
|
||||||
|
"besonderheiten": [
|
||||||
|
"kompakte Bauweise",
|
||||||
|
"hohe Kipplast",
|
||||||
|
"wendiger Allrounder"
|
||||||
|
],
|
||||||
|
"lieferung": "Der Lader wird geliefert, Kosten für Lieferung auf Anfrage",
|
||||||
|
"image": "images/lader_5-7t.jpg"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "radlader-volvo-zl302",
|
||||||
|
"title": "Volvo ZL 302 C Pro Radlader",
|
||||||
|
"preis": "150€/Tag",
|
||||||
|
"preisMehrtagig": "ab dem 2. Tag 130€/Tag",
|
||||||
|
"gewicht": "ca. 3 Tonnen",
|
||||||
|
"beschreibung": "Kompakter Volvo ZL 302 C Pro Radlader für vielseitige Lade- und Transportarbeiten. Ideal geeignet für Baustellen, Landwirtschaft und kommunale Einsätze. Robust, zuverlässig und effizient.",
|
||||||
|
"besonderheiten": [
|
||||||
|
"kompakte Abmessungen",
|
||||||
|
"hohe Wendigkeit",
|
||||||
|
"bewährte Volvo-Qualität"
|
||||||
|
],
|
||||||
|
"lieferung": "Der Lader wird geliefert, Kosten für Lieferung auf Anfrage",
|
||||||
|
"image": "images/lader.jpg"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "minibagger-2-0t",
|
||||||
|
"title": "Minibagger 2.0 Tonnen",
|
||||||
|
"preis": "135€/Tag",
|
||||||
|
"preisMehrtagig": "ab dem 2. Tag 120€/Tag",
|
||||||
|
"gewicht": "2.0 Tonnen",
|
||||||
|
"beschreibung": "Unser leistungsstarker Minibagger 2.0 Tonnen ist ideal für präzise Erdarbeiten auf engem Raum. Mit dem Powertilt-System können Sie den Löffel bis zu 180 Grad schwenken - perfekt für schwer zugängliche Stellen.",
|
||||||
|
"besonderheiten": [
|
||||||
|
"mit Powertilt ausgestattet",
|
||||||
|
"Löffel bis 180 Grad schwenkbar",
|
||||||
|
"inkl. Löffelpaket"
|
||||||
|
],
|
||||||
|
"lieferung": "Minibagger wird geliefert, Kosten für Lieferung auf Anfrage",
|
||||||
|
"image": "images/minibagger-2t.jpg"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "minibagger-1-8t",
|
||||||
|
"title": "Minibagger 1.8 Tonnen",
|
||||||
|
"preis": "110€/Tag",
|
||||||
|
"preisMehrtagig": "ab dem 2. Tag 100€/Tag",
|
||||||
|
"gewicht": "1.8 Tonnen",
|
||||||
|
"beschreibung": "Der kompakte Minibagger 1.8 Tonnen ist perfekt für kleinere Bauprojekte und enge Arbeitsbereiche. Trotz seiner kompakten Größe bietet er mit dem Powertilt-System maximale Flexibilität.",
|
||||||
|
"besonderheiten": [
|
||||||
|
"mit Powertilt ausgestattet",
|
||||||
|
"Löffel bis 180 Grad schwenkbar",
|
||||||
|
"inkl. Löffelpaket"
|
||||||
|
],
|
||||||
|
"lieferung": "Minibagger wird geliefert, Kosten für Lieferung auf Anfrage",
|
||||||
|
"image": "images/minibagger-1-8t.jpg"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "ruettelplatten",
|
||||||
|
"title": "Rüttelplatten",
|
||||||
|
"preis": "Auf Anfrage",
|
||||||
|
"gewicht": "von 82kg bis 450kg",
|
||||||
|
"beschreibung": "Professionelle Rüttelplatten für die Bodenverdichtung. Verfügbar in verschiedenen Gewichtsklassen von ca. 82kg bis 450kg, passend für jeden Einsatzbereich.",
|
||||||
|
"besonderheiten": [
|
||||||
|
"verschiedene Gewichtsklassen verfügbar",
|
||||||
|
"für unterschiedliche Verdichtungsaufgaben"
|
||||||
|
],
|
||||||
|
"image": "images/ruettelplatte.jpg"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "stampfer",
|
||||||
|
"title": "Stampfer",
|
||||||
|
"preis": "30€/Tag",
|
||||||
|
"gewicht": "ca. 62kg",
|
||||||
|
"beschreibung": "Robuster Stampfer für die Verdichtung von Erde in engen Bereichen wie Gräben oder Fundamenten.",
|
||||||
|
"besonderheiten": [],
|
||||||
|
"image": "images/stampfer.jpg"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "nassschneider",
|
||||||
|
"title": "Nassschneider / Steintrennmaschine",
|
||||||
|
"preis": "ab 35€/Tag",
|
||||||
|
"beschreibung": "Professioneller Nassschneider für präzise Schnitte in Stein, Beton und anderen Materialien. Ideal für saubere Trennarbeiten.",
|
||||||
|
"besonderheiten": [
|
||||||
|
"zuzüglich je 1mm Verschleiß der Scheibe 10€",
|
||||||
|
"Steintrennmaschine"
|
||||||
|
],
|
||||||
|
"image": "images/nassschneider.jpg"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "motorflex",
|
||||||
|
"title": "Motorflex Stihl TS 420",
|
||||||
|
"preis": "35€/Tag",
|
||||||
|
"beschreibung": "Hochwertige Stihl Motorflex TS 420 für mobile Trennarbeiten. Vielseitig einsetzbar für verschiedenste Materialien.",
|
||||||
|
"besonderheiten": [
|
||||||
|
"zuzüglich je 1mm Verschleiß der Scheibe 10€",
|
||||||
|
"Stihl Qualität"
|
||||||
|
],
|
||||||
|
"image": "images/motorflex.jpg"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"gartengeraete": [
|
||||||
|
{
|
||||||
|
"id": "wurzelstockfraese",
|
||||||
|
"title": "Wurzelstockfräse / Stubbenfräse",
|
||||||
|
"preis": "80€/Tag",
|
||||||
|
"preisMehrtagig": "Mietpreis für mehrere Tage auf Anfrage",
|
||||||
|
"leistung": "15 PS",
|
||||||
|
"gewicht": "120kg",
|
||||||
|
"arbeitsbreite": "75cm",
|
||||||
|
"beschreibung": "Die professionelle Baumstumpffräse entfernt Wurzelstöcke effizient und gründlich. Mit 15 PS Leistung bewältigt sie auch größere Stümpfe problemlos.",
|
||||||
|
"besonderheiten": [],
|
||||||
|
"image": "images/wurzelstockfraese.jpg"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "gartenfraesen",
|
||||||
|
"title": "Gartenfräsen Professional",
|
||||||
|
"preis": "65€/Tag",
|
||||||
|
"arbeitsbreite": "65cm",
|
||||||
|
"beschreibung": "Professionelle Gartenfräsen für die Bodenbearbeitung. Verfügbar mit 11 PS oder 9 PS Motor, beide mit 65cm Arbeitsbreite für effizientes Arbeiten.",
|
||||||
|
"besonderheiten": [
|
||||||
|
"11 PS Modell verfügbar",
|
||||||
|
"9 PS Modell verfügbar",
|
||||||
|
"beide mit 65cm Arbeitsbreite"
|
||||||
|
],
|
||||||
|
"image": "images/gartenfraese.jpg"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "erdbohrer",
|
||||||
|
"title": "Erdbohrer",
|
||||||
|
"preis": "25€/Tag",
|
||||||
|
"preisMehrtagig": "Mietpreis für mehrere Tage auf Anfrage",
|
||||||
|
"beschreibung": "Leistungsstarker Erdbohrer für Zaunpfähle, Pflanzlöcher und mehr. Im Preis sind drei verschiedene Bohraufsätze mit 10cm, 15cm und 20cm Durchmesser enthalten.",
|
||||||
|
"besonderheiten": [
|
||||||
|
"Bohrtiefe bis zu 60cm",
|
||||||
|
"mit Verlängerung bis zu 1m",
|
||||||
|
"drei Bohraufsätze enthalten (10cm, 15cm, 20cm)"
|
||||||
|
],
|
||||||
|
"image": "images/erdbohrer.jpg"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "vertikutierer",
|
||||||
|
"title": "Vertikutierer",
|
||||||
|
"preis": "30€/Tag",
|
||||||
|
"beschreibung": "Professioneller Vertikutierer für die Rasenpflege. Entfernt Moos und Rasenfilz und sorgt für einen gesunden, dichten Rasen.",
|
||||||
|
"besonderheiten": [],
|
||||||
|
"image": "images/vertikutierer.jpg"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "haecksler",
|
||||||
|
"title": "Häcksler",
|
||||||
|
"preis": "35€/Tag",
|
||||||
|
"leistung": "4 PS",
|
||||||
|
"beschreibung": "Leistungsstarker Häcksler mit 4 PS für Gartenabfälle. Verarbeitet Äste bis ca. 5cm Durchmesser mühelos.",
|
||||||
|
"besonderheiten": [
|
||||||
|
"bis ca. 5cm Aststärke"
|
||||||
|
],
|
||||||
|
"image": "images/haecksler.jpg"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "heckenschere",
|
||||||
|
"title": "Heckenschere Stihl",
|
||||||
|
"preis": "25€/Tag",
|
||||||
|
"beschreibung": "Professionelle Stihl Heckenschere für präzise Schnitte. Ideal für die Pflege von Hecken und Sträuchern.",
|
||||||
|
"besonderheiten": [
|
||||||
|
"Stihl Qualität",
|
||||||
|
"professionelles Gerät"
|
||||||
|
],
|
||||||
|
"image": "images/heckenschere.jpg"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
260
datenschutz.html
Normal file
@@ -0,0 +1,260 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="de">
|
||||||
|
<head>
|
||||||
|
<meta charset="UTF-8">
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||||
|
<meta name="description" content="Datenschutzerklärung - Andreas Baumer Baumaschinen und Gartengeräte">
|
||||||
|
<title>Datenschutz - Andreas Baumer</title>
|
||||||
|
|
||||||
|
<!-- Bootstrap 5 CSS -->
|
||||||
|
<link href="css/bootstrap.min.css" rel="stylesheet">
|
||||||
|
<!-- Bootstrap Icons -->
|
||||||
|
<link rel="stylesheet" href="css/bootstrap-icons.css">
|
||||||
|
<!-- Custom CSS -->
|
||||||
|
<link rel="stylesheet" href="css/style.css">
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<!-- Header / Navigation -->
|
||||||
|
<header class="sticky-top">
|
||||||
|
<nav class="navbar navbar-expand-lg navbar-dark bg-primary">
|
||||||
|
<div class="container">
|
||||||
|
<a class="navbar-brand d-flex align-items-center" href="index.html">
|
||||||
|
<img src="images/logo_invert.png" alt="Andreas Baumer Logo" class="navbar-logo me-3">
|
||||||
|
<div>
|
||||||
|
<strong>Andreas Baumer</strong>
|
||||||
|
<small class="d-block text-light-emphasis" style="font-size: 0.75rem;">Baumaschinen & Gartengeräte</small>
|
||||||
|
</div>
|
||||||
|
</a>
|
||||||
|
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarNav">
|
||||||
|
<span class="navbar-toggler-icon"></span>
|
||||||
|
</button>
|
||||||
|
<div class="collapse navbar-collapse" id="navbarNav">
|
||||||
|
<ul class="navbar-nav ms-auto">
|
||||||
|
<li class="nav-item">
|
||||||
|
<a class="nav-link" href="index.html">Start</a>
|
||||||
|
</li>
|
||||||
|
<li class="nav-item">
|
||||||
|
<a class="nav-link" href="kontakt.html">Kontakt</a>
|
||||||
|
</li>
|
||||||
|
<li class="nav-item">
|
||||||
|
<a class="nav-link" href="impressum.html">Impressum</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</nav>
|
||||||
|
</header>
|
||||||
|
|
||||||
|
<!-- Page Content -->
|
||||||
|
<section class="py-5">
|
||||||
|
<div class="container">
|
||||||
|
<div class="content-section mx-auto">
|
||||||
|
<h1 class="text-primary mb-4">Datenschutzerklärung</h1>
|
||||||
|
|
||||||
|
<div class="card mb-4">
|
||||||
|
<div class="card-body">
|
||||||
|
<h2>1. Datenschutz auf einen Blick</h2>
|
||||||
|
|
||||||
|
<h3>Allgemeine Hinweise</h3>
|
||||||
|
<p>
|
||||||
|
Die folgenden Hinweise geben einen einfachen Überblick darüber, was mit Ihren personenbezogenen Daten
|
||||||
|
passiert, wenn Sie diese Website besuchen. Personenbezogene Daten sind alle Daten, mit denen Sie
|
||||||
|
persönlich identifiziert werden können.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<h4>Wer ist verantwortlich für die Datenerfassung auf dieser Website?</h4>
|
||||||
|
<p>
|
||||||
|
Die Datenverarbeitung auf dieser Website erfolgt durch den Websitebetreiber. Dessen Kontaktdaten
|
||||||
|
können Sie dem Impressum dieser Website entnehmen.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<h4>Wie erfassen wir Ihre Daten?</h4>
|
||||||
|
<p>
|
||||||
|
Ihre Daten werden zum einen dadurch erhoben, dass Sie uns diese mitteilen. Hierbei kann es sich z.B.
|
||||||
|
um Daten handeln, die Sie in ein Kontaktformular eingeben.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
Andere Daten werden automatisch oder nach Ihrer Einwilligung beim Besuch der Website durch unsere
|
||||||
|
IT-Systeme erfasst. Das sind vor allem technische Daten (z.B. Internetbrowser, Betriebssystem oder
|
||||||
|
Uhrzeit des Seitenaufrufs). Die Erfassung dieser Daten erfolgt automatisch, sobald Sie diese Website
|
||||||
|
betreten.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<h4>Wofür nutzen wir Ihre Daten?</h4>
|
||||||
|
<p>
|
||||||
|
Ein Teil der Daten wird erhoben, um eine fehlerfreie Bereitstellung der Website zu gewährleisten.
|
||||||
|
Andere Daten können zur Analyse Ihres Nutzerverhaltens verwendet werden.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<h4>Welche Rechte haben Sie bezüglich Ihrer Daten?</h4>
|
||||||
|
<p>
|
||||||
|
Sie haben jederzeit das Recht, unentgeltlich Auskunft über Herkunft, Empfänger und Zweck Ihrer
|
||||||
|
gespeicherten personenbezogenen Daten zu erhalten. Sie haben außerdem ein Recht, die Berichtigung
|
||||||
|
oder Löschung dieser Daten zu verlangen. Wenn Sie eine Einwilligung zur Datenverarbeitung erteilt
|
||||||
|
haben, können Sie diese Einwilligung jederzeit für die Zukunft widerrufen.
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="card mb-4">
|
||||||
|
<div class="card-body">
|
||||||
|
<h2>2. Hosting</h2>
|
||||||
|
<p>
|
||||||
|
Diese Website wird extern gehostet. Die personenbezogenen Daten, die auf dieser Website erfasst werden,
|
||||||
|
werden auf den Servern des Hosters gespeichert. Hierbei kann es sich v.a. um IP-Adressen,
|
||||||
|
Kontaktanfragen, Meta- und Kommunikationsdaten, Vertragsdaten, Kontaktdaten, Namen, Websitezugriffe
|
||||||
|
und sonstige Daten, die über eine Website generiert werden, handeln.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
Der Einsatz des Hosters erfolgt zum Zwecke der Vertragserfüllung gegenüber unseren potenziellen und
|
||||||
|
bestehenden Kunden (Art. 6 Abs. 1 lit. b DSGVO) und im Interesse einer sicheren, schnellen und
|
||||||
|
effizienten Bereitstellung unseres Online-Angebots durch einen professionellen Anbieter
|
||||||
|
(Art. 6 Abs. 1 lit. f DSGVO).
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="card mb-4">
|
||||||
|
<div class="card-body">
|
||||||
|
<h2>3. Allgemeine Hinweise und Pflichtinformationen</h2>
|
||||||
|
|
||||||
|
<h3>Datenschutz</h3>
|
||||||
|
<p>
|
||||||
|
Die Betreiber dieser Seiten nehmen den Schutz Ihrer persönlichen Daten sehr ernst. Wir behandeln
|
||||||
|
Ihre personenbezogenen Daten vertraulich und entsprechend der gesetzlichen Datenschutzvorschriften
|
||||||
|
sowie dieser Datenschutzerklärung.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<h3>Hinweis zur verantwortlichen Stelle</h3>
|
||||||
|
<p>
|
||||||
|
Die verantwortliche Stelle für die Datenverarbeitung auf dieser Website ist:
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
Andreas Baumer<br>
|
||||||
|
Angerstraße 19<br>
|
||||||
|
93183 Kallmünz<br>
|
||||||
|
Ortsteil Traidendorf
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
Telefon: +49 (0) 160 966 074 70<br>
|
||||||
|
E-Mail: baumer@traidendorf.de
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<h3>Speicherdauer</h3>
|
||||||
|
<p>
|
||||||
|
Soweit innerhalb dieser Datenschutzerklärung keine speziellere Speicherdauer genannt wurde, verbleiben
|
||||||
|
Ihre personenbezogenen Daten bei uns, bis der Zweck für die Datenverarbeitung entfällt.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<h3>Widerruf Ihrer Einwilligung zur Datenverarbeitung</h3>
|
||||||
|
<p>
|
||||||
|
Viele Datenverarbeitungsvorgänge sind nur mit Ihrer ausdrücklichen Einwilligung möglich. Sie können
|
||||||
|
eine bereits erteilte Einwilligung jederzeit widerrufen.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<h3>Auskunft, Löschung und Berichtigung</h3>
|
||||||
|
<p>
|
||||||
|
Sie haben im Rahmen der geltenden gesetzlichen Bestimmungen jederzeit das Recht auf unentgeltliche
|
||||||
|
Auskunft über Ihre gespeicherten personenbezogenen Daten, deren Herkunft und Empfänger und den
|
||||||
|
Zweck der Datenverarbeitung und ggf. ein Recht auf Berichtigung oder Löschung dieser Daten.
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="card mb-4">
|
||||||
|
<div class="card-body">
|
||||||
|
<h2>4. Datenerfassung auf dieser Website</h2>
|
||||||
|
|
||||||
|
<h3>Server-Log-Dateien</h3>
|
||||||
|
<p>
|
||||||
|
Der Provider der Seiten erhebt und speichert automatisch Informationen in so genannten Server-Log-Dateien,
|
||||||
|
die Ihr Browser automatisch an uns übermittelt. Dies sind:
|
||||||
|
</p>
|
||||||
|
<ul>
|
||||||
|
<li>Browsertyp und Browserversion</li>
|
||||||
|
<li>verwendetes Betriebssystem</li>
|
||||||
|
<li>Referrer URL</li>
|
||||||
|
<li>Hostname des zugreifenden Rechners</li>
|
||||||
|
<li>Uhrzeit der Serveranfrage</li>
|
||||||
|
<li>IP-Adresse</li>
|
||||||
|
</ul>
|
||||||
|
<p>
|
||||||
|
Eine Zusammenführung dieser Daten mit anderen Datenquellen wird nicht vorgenommen. Die Erfassung dieser
|
||||||
|
Daten erfolgt auf Grundlage von Art. 6 Abs. 1 lit. f DSGVO.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<h3>Kontaktformular</h3>
|
||||||
|
<p>
|
||||||
|
Wenn Sie uns per Kontaktformular Anfragen zukommen lassen, werden Ihre Angaben aus dem Anfrageformular
|
||||||
|
inklusive der von Ihnen dort angegebenen Kontaktdaten zwecks Bearbeitung der Anfrage und für den Fall
|
||||||
|
von Anschlussfragen bei uns gespeichert. Diese Daten geben wir nicht ohne Ihre Einwilligung weiter.
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="alert alert-warning" role="alert">
|
||||||
|
<h5><i class="bi bi-exclamation-triangle-fill"></i> Wichtiger Hinweis</h5>
|
||||||
|
<p class="mb-0">
|
||||||
|
Diese Datenschutzerklärung ist ein Muster und muss ggf. an Ihre spezifischen
|
||||||
|
Gegebenheiten angepasst werden. Bitte konsultieren Sie einen Rechtsanwalt oder einen
|
||||||
|
Datenschutzbeauftragten, um sicherzustellen, dass Ihre Datenschutzerklärung vollständig und korrekt ist.
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<!-- Footer -->
|
||||||
|
<footer class="bg-dark text-white py-5">
|
||||||
|
<div class="container">
|
||||||
|
<div class="row g-4">
|
||||||
|
<div class="col-md-4">
|
||||||
|
<h5 class="text-success mb-3">Andreas Baumer</h5>
|
||||||
|
<p class="mb-1">Angerstraße 19</p>
|
||||||
|
<p class="mb-1">93183 Kallmünz</p>
|
||||||
|
<p>Ortsteil Traidendorf</p>
|
||||||
|
</div>
|
||||||
|
<div class="col-md-4">
|
||||||
|
<h5 class="text-success mb-3">Kontakt</h5>
|
||||||
|
<p class="mb-1">
|
||||||
|
<i class="bi bi-telephone"></i>
|
||||||
|
<a href="tel:+4994739515530" class="text-white text-decoration-none">+49 (0) 9473 951 5530</a>
|
||||||
|
</p>
|
||||||
|
<p class="mb-1">
|
||||||
|
<i class="bi bi-phone"></i>
|
||||||
|
<a href="tel:+49160966074 70" class="text-white text-decoration-none">+49 (0) 160 966 074 70</a>
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
<i class="bi bi-envelope"></i>
|
||||||
|
<a href="mailto:baumer@traidendorf.de" class="text-white text-decoration-none">baumer@traidendorf.de</a>
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
<div class="col-md-4">
|
||||||
|
<h5 class="text-success mb-3">Rechtliches</h5>
|
||||||
|
<ul class="list-unstyled">
|
||||||
|
<li class="mb-2">
|
||||||
|
<a href="impressum.html" class="text-white text-decoration-none">
|
||||||
|
<i class="bi bi-arrow-right"></i> Impressum
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<a href="datenschutz.html" class="text-white text-decoration-none">
|
||||||
|
<i class="bi bi-arrow-right"></i> Datenschutz
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<hr class="my-4 bg-light">
|
||||||
|
<div class="text-center">
|
||||||
|
<p class="mb-0">© <span id="year"></span> Andreas Baumer - Alle Rechte vorbehalten</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</footer>
|
||||||
|
|
||||||
|
<!-- Bootstrap JS -->
|
||||||
|
<script src="js/bootstrap.bundle.min.js"></script>
|
||||||
|
<!-- Custom JS -->
|
||||||
|
<script src="js/main.js"></script>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
BIN
fonts/bootstrap-icons.woff
Normal file
BIN
fonts/bootstrap-icons.woff2
Normal file
40
fonts/phpmailer/phpmailer/Exception.php
Normal file
@@ -0,0 +1,40 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
/**
|
||||||
|
* PHPMailer Exception class.
|
||||||
|
* PHP Version 5.5.
|
||||||
|
*
|
||||||
|
* @see https://github.com/PHPMailer/PHPMailer/ The PHPMailer GitHub project
|
||||||
|
*
|
||||||
|
* @author Marcus Bointon (Synchro/coolbru) <phpmailer@synchromedia.co.uk>
|
||||||
|
* @author Jim Jagielski (jimjag) <jimjag@gmail.com>
|
||||||
|
* @author Andy Prevost (codeworxtech) <codeworxtech@users.sourceforge.net>
|
||||||
|
* @author Brent R. Matzelle (original founder)
|
||||||
|
* @copyright 2012 - 2020 Marcus Bointon
|
||||||
|
* @copyright 2010 - 2012 Jim Jagielski
|
||||||
|
* @copyright 2004 - 2009 Andy Prevost
|
||||||
|
* @license https://www.gnu.org/licenses/old-licenses/lgpl-2.1.html GNU Lesser General Public License
|
||||||
|
* @note This program is distributed in the hope that it will be useful - WITHOUT
|
||||||
|
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||||
|
* FITNESS FOR A PARTICULAR PURPOSE.
|
||||||
|
*/
|
||||||
|
|
||||||
|
namespace PHPMailer\PHPMailer;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* PHPMailer exception handler.
|
||||||
|
*
|
||||||
|
* @author Marcus Bointon <phpmailer@synchromedia.co.uk>
|
||||||
|
*/
|
||||||
|
class Exception extends \Exception
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Prettify error message output.
|
||||||
|
*
|
||||||
|
* @return string
|
||||||
|
*/
|
||||||
|
public function errorMessage()
|
||||||
|
{
|
||||||
|
return '<strong>' . htmlspecialchars($this->getMessage(), ENT_COMPAT | ENT_HTML401) . "</strong><br />\n";
|
||||||
|
}
|
||||||
|
}
|
||||||
5525
fonts/phpmailer/phpmailer/PHPMailer.php
Normal file
1617
fonts/phpmailer/phpmailer/SMTP.php
Normal file
19
images/README.md
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
# Bilder-Verzeichnis
|
||||||
|
|
||||||
|
Legen Sie hier Bilder Ihrer Maschinen ab.
|
||||||
|
|
||||||
|
Empfohlene Bildgröße: 600x400px oder ähnliches Seitenverhältnis (3:2)
|
||||||
|
|
||||||
|
Beispiel:
|
||||||
|
- minibagger-2t.jpg
|
||||||
|
- minibagger-1-8t.jpg
|
||||||
|
- ruettelplatte.jpg
|
||||||
|
- etc.
|
||||||
|
|
||||||
|
Die Bilder werden dann in `data/maschinen.json` referenziert:
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"image": "images/minibagger-2t.jpg"
|
||||||
|
}
|
||||||
|
```
|
||||||
BIN
images/banner_home-lg.jpg
Normal file
|
After Width: | Height: | Size: 406 KiB |
BIN
images/banner_home-md.jpg
Normal file
|
After Width: | Height: | Size: 220 KiB |
BIN
images/banner_home-sm.jpg
Normal file
|
After Width: | Height: | Size: 108 KiB |
BIN
images/banner_home-xl.jpg
Normal file
|
After Width: | Height: | Size: 568 KiB |
BIN
images/banner_home.jpg
Normal file
|
After Width: | Height: | Size: 132 KiB |
BIN
images/erdbohrer.jpg
Normal file
|
After Width: | Height: | Size: 64 KiB |
BIN
images/gartenfraese.jpg
Normal file
|
After Width: | Height: | Size: 65 KiB |
BIN
images/haecksler.jpg
Normal file
|
After Width: | Height: | Size: 69 KiB |
BIN
images/heckenschere.jpg
Normal file
|
After Width: | Height: | Size: 92 KiB |
BIN
images/lader.jpg
Normal file
|
After Width: | Height: | Size: 58 KiB |
BIN
images/lader_5-7t.jpg
Normal file
|
After Width: | Height: | Size: 38 KiB |
BIN
images/logo_farbe.png
Normal file
|
After Width: | Height: | Size: 9.1 KiB |
BIN
images/logo_invert.png
Normal file
|
After Width: | Height: | Size: 9.3 KiB |
BIN
images/minibagger-1-8t.jpg
Normal file
|
After Width: | Height: | Size: 47 KiB |
BIN
images/minibagger-2t.jpg
Normal file
|
After Width: | Height: | Size: 46 KiB |
BIN
images/motorflex.jpg
Normal file
|
After Width: | Height: | Size: 39 KiB |
BIN
images/nassschneider.jpg
Normal file
|
After Width: | Height: | Size: 37 KiB |
BIN
images/ruettelplatte.jpg
Normal file
|
After Width: | Height: | Size: 38 KiB |
BIN
images/stampfer.jpg
Normal file
|
After Width: | Height: | Size: 48 KiB |
BIN
images/vertikutierer.jpg
Normal file
|
After Width: | Height: | Size: 70 KiB |
BIN
images/wurzelstockfraese.jpg
Normal file
|
After Width: | Height: | Size: 58 KiB |
219
impressum.html
Normal file
@@ -0,0 +1,219 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="de">
|
||||||
|
<head>
|
||||||
|
<meta charset="UTF-8">
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||||
|
<meta name="description" content="Impressum - Andreas Baumer Baumaschinen und Gartengeräte">
|
||||||
|
<title>Impressum - Andreas Baumer</title>
|
||||||
|
|
||||||
|
<!-- Bootstrap 5 CSS -->
|
||||||
|
<link href="css/bootstrap.min.css" rel="stylesheet">
|
||||||
|
<!-- Bootstrap Icons -->
|
||||||
|
<link rel="stylesheet" href="css/bootstrap-icons.css">
|
||||||
|
<!-- Custom CSS -->
|
||||||
|
<link rel="stylesheet" href="css/style.css">
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<!-- Header / Navigation -->
|
||||||
|
<header class="sticky-top">
|
||||||
|
<nav class="navbar navbar-expand-lg navbar-dark bg-primary">
|
||||||
|
<div class="container">
|
||||||
|
<a class="navbar-brand d-flex align-items-center" href="index.html">
|
||||||
|
<img src="images/logo_invert.png" alt="Andreas Baumer Logo" class="navbar-logo me-3">
|
||||||
|
<div>
|
||||||
|
<strong>Andreas Baumer</strong>
|
||||||
|
<small class="d-block text-light-emphasis" style="font-size: 0.75rem;">Baumaschinen & Gartengeräte</small>
|
||||||
|
</div>
|
||||||
|
</a>
|
||||||
|
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarNav">
|
||||||
|
<span class="navbar-toggler-icon"></span>
|
||||||
|
</button>
|
||||||
|
<div class="collapse navbar-collapse" id="navbarNav">
|
||||||
|
<ul class="navbar-nav ms-auto">
|
||||||
|
<li class="nav-item">
|
||||||
|
<a class="nav-link" href="index.html">Start</a>
|
||||||
|
</li>
|
||||||
|
<li class="nav-item">
|
||||||
|
<a class="nav-link" href="kontakt.html">Kontakt</a>
|
||||||
|
</li>
|
||||||
|
<li class="nav-item">
|
||||||
|
<a class="nav-link active" href="impressum.html">Impressum</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</nav>
|
||||||
|
</header>
|
||||||
|
|
||||||
|
<!-- Page Content -->
|
||||||
|
<section class="py-5">
|
||||||
|
<div class="container">
|
||||||
|
<div class="content-section mx-auto">
|
||||||
|
<h1 class="text-primary mb-4">Impressum</h1>
|
||||||
|
|
||||||
|
<div class="card mb-4">
|
||||||
|
<div class="card-body">
|
||||||
|
<h2>Angaben gemäß § 5 TMG</h2>
|
||||||
|
<p>
|
||||||
|
Andreas Baumer<br>
|
||||||
|
Baumaschinen und Dienstleistungen<br>
|
||||||
|
Angerstraße 19<br>
|
||||||
|
93183 Kallmünz<br>
|
||||||
|
Ortsteil Traidendorf
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="card mb-4">
|
||||||
|
<div class="card-body">
|
||||||
|
<h2>Kontakt</h2>
|
||||||
|
<p>
|
||||||
|
Telefon: +49 (0) 9473 951 5530<br>
|
||||||
|
Mobil: +49 (0) 160 966 074 70<br>
|
||||||
|
E-Mail: <a href="mailto:baumer@traidendorf.de">baumer@traidendorf.de</a>
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="card mb-4">
|
||||||
|
<div class="card-body">
|
||||||
|
<h2>Umsatzsteuer-ID</h2>
|
||||||
|
<p>
|
||||||
|
Umsatzsteuer-Identifikationsnummer gemäß § 27 a Umsatzsteuergesetz:<br>
|
||||||
|
[Bitte hier Ihre USt-IdNr. eintragen, falls vorhanden]
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="card mb-4">
|
||||||
|
<div class="card-body">
|
||||||
|
<h2>Verantwortlich für den Inhalt nach § 55 Abs. 2 RStV</h2>
|
||||||
|
<p>
|
||||||
|
Andreas Baumer<br>
|
||||||
|
Angerstraße 19<br>
|
||||||
|
93183 Kallmünz
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="card mb-4">
|
||||||
|
<div class="card-body">
|
||||||
|
<h2>Haftungsausschluss</h2>
|
||||||
|
|
||||||
|
<h3>Haftung für Inhalte</h3>
|
||||||
|
<p>
|
||||||
|
Als Diensteanbieter sind wir gemäß § 7 Abs.1 TMG für eigene Inhalte auf diesen Seiten nach den
|
||||||
|
allgemeinen Gesetzen verantwortlich. Nach §§ 8 bis 10 TMG sind wir als Diensteanbieter jedoch nicht
|
||||||
|
verpflichtet, übermittelte oder gespeicherte fremde Informationen zu überwachen oder nach Umständen
|
||||||
|
zu forschen, die auf eine rechtswidrige Tätigkeit hinweisen.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
Verpflichtungen zur Entfernung oder Sperrung der Nutzung von Informationen nach den allgemeinen
|
||||||
|
Gesetzen bleiben hiervon unberührt. Eine diesbezügliche Haftung ist jedoch erst ab dem Zeitpunkt der
|
||||||
|
Kenntnis einer konkreten Rechtsverletzung möglich. Bei Bekanntwerden von entsprechenden
|
||||||
|
Rechtsverletzungen werden wir diese Inhalte umgehend entfernen.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<h3>Haftung für Links</h3>
|
||||||
|
<p>
|
||||||
|
Unser Angebot enthält Links zu externen Websites Dritter, auf deren Inhalte wir keinen Einfluss haben.
|
||||||
|
Deshalb können wir für diese fremden Inhalte auch keine Gewähr übernehmen. Für die Inhalte der
|
||||||
|
verlinkten Seiten ist stets der jeweilige Anbieter oder Betreiber der Seiten verantwortlich. Die
|
||||||
|
verlinkten Seiten wurden zum Zeitpunkt der Verlinkung auf mögliche Rechtsverstöße überprüft.
|
||||||
|
Rechtswidrige Inhalte waren zum Zeitpunkt der Verlinkung nicht erkennbar.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
Eine permanente inhaltliche Kontrolle der verlinkten Seiten ist jedoch ohne konkrete Anhaltspunkte
|
||||||
|
einer Rechtsverletzung nicht zumutbar. Bei Bekanntwerden von Rechtsverletzungen werden wir derartige
|
||||||
|
Links umgehend entfernen.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<h3>Urheberrecht</h3>
|
||||||
|
<p>
|
||||||
|
Die durch die Seitenbetreiber erstellten Inhalte und Werke auf diesen Seiten unterliegen dem deutschen
|
||||||
|
Urheberrecht. Die Vervielfältigung, Bearbeitung, Verbreitung und jede Art der Verwertung außerhalb der
|
||||||
|
Grenzen des Urheberrechtes bedürfen der schriftlichen Zustimmung des jeweiligen Autors bzw. Erstellers.
|
||||||
|
Downloads und Kopien dieser Seite sind nur für den privaten, nicht kommerziellen Gebrauch gestattet.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
Soweit die Inhalte auf dieser Seite nicht vom Betreiber erstellt wurden, werden die Urheberrechte
|
||||||
|
Dritter beachtet. Insbesondere werden Inhalte Dritter als solche gekennzeichnet. Sollten Sie trotzdem
|
||||||
|
auf eine Urheberrechtsverletzung aufmerksam werden, bitten wir um einen entsprechenden Hinweis. Bei
|
||||||
|
Bekanntwerden von Rechtsverletzungen werden wir derartige Inhalte umgehend entfernen.
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="card mb-4">
|
||||||
|
<div class="card-body">
|
||||||
|
<h2>Streitschlichtung</h2>
|
||||||
|
<p>
|
||||||
|
Die Europäische Kommission stellt eine Plattform zur Online-Streitbeilegung (OS) bereit:
|
||||||
|
<a href="https://ec.europa.eu/consumers/odr" target="_blank" rel="noopener">
|
||||||
|
https://ec.europa.eu/consumers/odr
|
||||||
|
</a>.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
Wir sind nicht bereit oder verpflichtet, an Streitbeilegungsverfahren vor einer
|
||||||
|
Verbraucherschlichtungsstelle teilzunehmen.
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<!-- Footer -->
|
||||||
|
<footer class="bg-dark text-white py-5">
|
||||||
|
<div class="container">
|
||||||
|
<div class="row g-4">
|
||||||
|
<div class="col-md-4">
|
||||||
|
<h5 class="text-success mb-3">Andreas Baumer</h5>
|
||||||
|
<p class="mb-1">Angerstraße 19</p>
|
||||||
|
<p class="mb-1">93183 Kallmünz</p>
|
||||||
|
<p>Ortsteil Traidendorf</p>
|
||||||
|
</div>
|
||||||
|
<div class="col-md-4">
|
||||||
|
<h5 class="text-success mb-3">Kontakt</h5>
|
||||||
|
<p class="mb-1">
|
||||||
|
<i class="bi bi-telephone"></i>
|
||||||
|
<a href="tel:+4994739515530" class="text-white text-decoration-none">+49 (0) 9473 951 5530</a>
|
||||||
|
</p>
|
||||||
|
<p class="mb-1">
|
||||||
|
<i class="bi bi-phone"></i>
|
||||||
|
<a href="tel:+49160966074 70" class="text-white text-decoration-none">+49 (0) 160 966 074 70</a>
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
<i class="bi bi-envelope"></i>
|
||||||
|
<a href="mailto:baumer@traidendorf.de" class="text-white text-decoration-none">baumer@traidendorf.de</a>
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
<div class="col-md-4">
|
||||||
|
<h5 class="text-success mb-3">Rechtliches</h5>
|
||||||
|
<ul class="list-unstyled">
|
||||||
|
<li class="mb-2">
|
||||||
|
<a href="impressum.html" class="text-white text-decoration-none">
|
||||||
|
<i class="bi bi-arrow-right"></i> Impressum
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<a href="datenschutz.html" class="text-white text-decoration-none">
|
||||||
|
<i class="bi bi-arrow-right"></i> Datenschutz
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<hr class="my-4 bg-light">
|
||||||
|
<div class="text-center">
|
||||||
|
<p class="mb-0">© <span id="year"></span> Andreas Baumer - Alle Rechte vorbehalten</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</footer>
|
||||||
|
|
||||||
|
<!-- Bootstrap JS -->
|
||||||
|
<script src="js/bootstrap.bundle.min.js"></script>
|
||||||
|
<!-- Custom JS -->
|
||||||
|
<script src="js/main.js"></script>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
179
index.html
Normal file
@@ -0,0 +1,179 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="de">
|
||||||
|
<head>
|
||||||
|
<meta charset="UTF-8">
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||||
|
<meta name="description" content="Professionelle Baumaschinen und Gartengeräte zu vermieten - Andreas Baumer, Traidendorf">
|
||||||
|
<title>Andreas Baumer - Baumaschinen & Gartengeräte Verleih</title>
|
||||||
|
|
||||||
|
<!-- Bootstrap 5 CSS -->
|
||||||
|
<link href="css/bootstrap.min.css" rel="stylesheet">
|
||||||
|
<!-- Bootstrap Icons -->
|
||||||
|
<link rel="stylesheet" href="css/bootstrap-icons.css">
|
||||||
|
<!-- Custom CSS -->
|
||||||
|
<link rel="stylesheet" href="css/style.css">
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<!-- Header / Navigation -->
|
||||||
|
<header class="sticky-top">
|
||||||
|
<nav class="navbar navbar-expand-lg navbar-dark bg-primary">
|
||||||
|
<div class="container">
|
||||||
|
<a class="navbar-brand d-flex align-items-center" href="index.html">
|
||||||
|
<img src="images/logo_invert.png" alt="Andreas Baumer Logo" class="navbar-logo me-3">
|
||||||
|
<!-- <div>
|
||||||
|
<strong>Andreas Baumer</strong>
|
||||||
|
<small class="d-block text-light-emphasis" style="font-size: 0.75rem;">Baumaschinen & Gartengeräte</small>
|
||||||
|
</div> -->
|
||||||
|
</a>
|
||||||
|
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarNav">
|
||||||
|
<span class="navbar-toggler-icon"></span>
|
||||||
|
</button>
|
||||||
|
<div class="collapse navbar-collapse" id="navbarNav">
|
||||||
|
<ul class="navbar-nav ms-auto">
|
||||||
|
<li class="nav-item">
|
||||||
|
<a class="nav-link active" href="index.html">Start</a>
|
||||||
|
</li>
|
||||||
|
<li class="nav-item">
|
||||||
|
<a class="nav-link" href="kontakt.html">Kontakt</a>
|
||||||
|
</li>
|
||||||
|
<li class="nav-item">
|
||||||
|
<a class="nav-link" href="impressum.html">Impressum</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</nav>
|
||||||
|
|
||||||
|
<!-- Contact Bar -->
|
||||||
|
<div class="contact-bar bg-primary-subtle py-2">
|
||||||
|
<div class="container">
|
||||||
|
<div class="row g-2 text-center text-lg-start">
|
||||||
|
<div class="col-lg-4 col-12">
|
||||||
|
<i class="bi bi-telephone-fill text-primary"></i>
|
||||||
|
<a href="tel:+4994739515530" class="text-decoration-none text-dark ms-2">+49 (0) 9473 951 5530</a>
|
||||||
|
</div>
|
||||||
|
<div class="col-lg-4 col-12">
|
||||||
|
<i class="bi bi-phone-fill text-primary"></i>
|
||||||
|
<a href="tel:+49160966074 70" class="text-decoration-none text-dark ms-2">+49 (0) 160 966 074 70</a>
|
||||||
|
</div>
|
||||||
|
<div class="col-lg-4 col-12">
|
||||||
|
<i class="bi bi-envelope-fill text-primary"></i>
|
||||||
|
<a href="mailto:baumer@traidendorf.de" class="text-decoration-none text-dark ms-2">baumer@traidendorf.de</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</header>
|
||||||
|
|
||||||
|
<!-- Hero Section -->
|
||||||
|
<section class="hero-section py-5">
|
||||||
|
<div class="hero-overlay"></div>
|
||||||
|
<div class="container position-relative">
|
||||||
|
<div class="row align-items-center">
|
||||||
|
<div class="col-lg-12 text-center">
|
||||||
|
<h1 class="display-4 fw-bold text-white mb-3">
|
||||||
|
Professionelle Baumaschinen und Gartengeräte zu vermieten
|
||||||
|
</h1>
|
||||||
|
<p class="lead mb-3 text-white">
|
||||||
|
Sie wollen Ihr Grundstück umgestalten oder neu anlegen und zusätzliche
|
||||||
|
Neuanschaffungen vermeiden? Dann sind Sie bei uns genau richtig!
|
||||||
|
</p>
|
||||||
|
<p class="text-white-50">
|
||||||
|
Wir vermieten professionelle Garten- und Baumaschinen sowohl für den
|
||||||
|
gewerblichen Bereich, als auch für den privaten Handwerker.
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<!-- Baumaschinen Section -->
|
||||||
|
<section class="py-5">
|
||||||
|
<div class="container">
|
||||||
|
<h2 class="mb-4">
|
||||||
|
<i class="bi bi-building text-primary"></i> Baumaschinen
|
||||||
|
</h2>
|
||||||
|
<div id="baumaschinen-container" class="row g-4">
|
||||||
|
<!-- Wird dynamisch mit JavaScript gefüllt -->
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<!-- Gartengeräte Section -->
|
||||||
|
<section class="py-5 bg-light">
|
||||||
|
<div class="container">
|
||||||
|
<h2 class="mb-4">
|
||||||
|
<i class="bi bi-tree text-success"></i> Gartengeräte
|
||||||
|
</h2>
|
||||||
|
<div id="gartengeraete-container" class="row g-4">
|
||||||
|
<!-- Wird dynamisch mit JavaScript gefüllt -->
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<!-- CTA Section -->
|
||||||
|
<section class="cta-section py-5 bg-primary text-white">
|
||||||
|
<div class="container text-center">
|
||||||
|
<h2 class="mb-3">Haben Sie noch Fragen?</h2>
|
||||||
|
<p class="lead mb-2">Wir sind immer bemüht, unsere Maschinenauswahl für Sie zu erweitern.</p>
|
||||||
|
<p class="mb-4">Melden Sie sich einfach bei uns!</p>
|
||||||
|
<a href="kontakt.html" class="btn btn-light btn-lg">
|
||||||
|
<i class="bi bi-envelope"></i> Kontakt aufnehmen
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<!-- Footer -->
|
||||||
|
<footer class="bg-dark text-white py-5">
|
||||||
|
<div class="container">
|
||||||
|
<div class="row g-4">
|
||||||
|
<div class="col-md-4">
|
||||||
|
<h5 class="text-success mb-3">Andreas Baumer</h5>
|
||||||
|
<p class="mb-1">Angerstraße 19</p>
|
||||||
|
<p class="mb-1">93183 Kallmünz</p>
|
||||||
|
<p>Ortsteil Traidendorf</p>
|
||||||
|
</div>
|
||||||
|
<div class="col-md-4">
|
||||||
|
<h5 class="text-success mb-3">Kontakt</h5>
|
||||||
|
<p class="mb-1">
|
||||||
|
<i class="bi bi-telephone"></i>
|
||||||
|
<a href="tel:+4994739515530" class="text-white text-decoration-none">+49 (0) 9473 951 5530</a>
|
||||||
|
</p>
|
||||||
|
<p class="mb-1">
|
||||||
|
<i class="bi bi-phone"></i>
|
||||||
|
<a href="tel:+49160966074 70" class="text-white text-decoration-none">+49 (0) 160 966 074 70</a>
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
<i class="bi bi-envelope"></i>
|
||||||
|
<a href="mailto:baumer@traidendorf.de" class="text-white text-decoration-none">baumer@traidendorf.de</a>
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
<div class="col-md-4">
|
||||||
|
<h5 class="text-success mb-3">Rechtliches</h5>
|
||||||
|
<ul class="list-unstyled">
|
||||||
|
<li class="mb-2">
|
||||||
|
<a href="impressum.html" class="text-white text-decoration-none">
|
||||||
|
<i class="bi bi-arrow-right"></i> Impressum
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<a href="datenschutz.html" class="text-white text-decoration-none">
|
||||||
|
<i class="bi bi-arrow-right"></i> Datenschutz
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<hr class="my-4 bg-light">
|
||||||
|
<div class="text-center">
|
||||||
|
<p class="mb-0">© <span id="year"></span> Andreas Baumer - Alle Rechte vorbehalten</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</footer>
|
||||||
|
|
||||||
|
<!-- Bootstrap JS -->
|
||||||
|
<script src="js/bootstrap.bundle.min.js"></script>
|
||||||
|
<!-- Custom JS -->
|
||||||
|
<script src="js/main.js"></script>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
7
js/bootstrap.bundle.min.js
vendored
Normal file
196
js/main.js
Normal file
@@ -0,0 +1,196 @@
|
|||||||
|
// Aktuelles Jahr im Footer setzen
|
||||||
|
document.getElementById('year').textContent = new Date().getFullYear();
|
||||||
|
|
||||||
|
// URL-Parameter für Erfolgs-/Fehlermeldungen prüfen (Kontaktformular)
|
||||||
|
document.addEventListener('DOMContentLoaded', () => {
|
||||||
|
const urlParams = new URLSearchParams(window.location.search);
|
||||||
|
|
||||||
|
// Erfolgsmeldung anzeigen
|
||||||
|
if (urlParams.get('success') === '1') {
|
||||||
|
const successAlert = document.getElementById('alertSuccess');
|
||||||
|
if (successAlert) {
|
||||||
|
successAlert.classList.remove('d-none');
|
||||||
|
// Formular leeren
|
||||||
|
const form = document.getElementById('contactForm');
|
||||||
|
if (form) form.reset();
|
||||||
|
// Nach oben scrollen
|
||||||
|
window.scrollTo({ top: 0, behavior: 'smooth' });
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Fehlermeldung anzeigen
|
||||||
|
if (urlParams.get('error') === '1') {
|
||||||
|
const errorAlert = document.getElementById('alertError');
|
||||||
|
if (errorAlert) {
|
||||||
|
errorAlert.classList.remove('d-none');
|
||||||
|
const reason = urlParams.get('reason');
|
||||||
|
if (reason === 'rate_limit') {
|
||||||
|
errorAlert.innerHTML = '<i class="bi bi-exclamation-triangle-fill"></i> <strong>Zu viele Anfragen!</strong> Bitte warten Sie einen Moment, bevor Sie erneut versuchen.';
|
||||||
|
}
|
||||||
|
// Nach oben scrollen
|
||||||
|
window.scrollTo({ top: 0, behavior: 'smooth' });
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Kontaktformular: Maschine aus URL Parameter vorausfüllen
|
||||||
|
const maschine = urlParams.get('maschine');
|
||||||
|
const maschineInput = document.getElementById('maschine');
|
||||||
|
if (maschine && maschineInput) {
|
||||||
|
maschineInput.value = decodeURIComponent(maschine);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Submit-Button Feedback
|
||||||
|
const contactForm = document.getElementById('contactForm');
|
||||||
|
if (contactForm) {
|
||||||
|
contactForm.addEventListener('submit', function() {
|
||||||
|
const submitBtn = document.getElementById('submitBtn');
|
||||||
|
if (submitBtn) {
|
||||||
|
submitBtn.disabled = true;
|
||||||
|
submitBtn.innerHTML = '<span class="spinner-border spinner-border-sm me-2"></span>Wird gesendet...';
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
// Maschinen laden
|
||||||
|
loadMaschinen();
|
||||||
|
});
|
||||||
|
|
||||||
|
// Maschinen laden und anzeigen
|
||||||
|
async function loadMaschinen() {
|
||||||
|
try {
|
||||||
|
const response = await fetch('data/maschinen.json');
|
||||||
|
const data = await response.json();
|
||||||
|
|
||||||
|
// Baumaschinen anzeigen
|
||||||
|
displayMaschinen(data.baumaschinen, 'baumaschinen-container');
|
||||||
|
|
||||||
|
// Gartengeräte anzeigen
|
||||||
|
displayMaschinen(data.gartengeraete, 'gartengeraete-container');
|
||||||
|
} catch (error) {
|
||||||
|
console.error('Fehler beim Laden der Maschinen:', error);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Maschinen-Karten erstellen und anzeigen
|
||||||
|
function displayMaschinen(maschinen, containerId) {
|
||||||
|
const container = document.getElementById(containerId);
|
||||||
|
if (!container) return;
|
||||||
|
|
||||||
|
container.innerHTML = '';
|
||||||
|
|
||||||
|
maschinen.forEach(maschine => {
|
||||||
|
const card = createMaschinenCard(maschine);
|
||||||
|
container.appendChild(card);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
// Einzelne Maschinen-Karte erstellen
|
||||||
|
function createMaschinenCard(maschine) {
|
||||||
|
const col = document.createElement('div');
|
||||||
|
col.className = 'col-md-6 col-lg-4';
|
||||||
|
|
||||||
|
// Besonderheiten als Liste
|
||||||
|
let besonderheitenHTML = '';
|
||||||
|
if (maschine.besonderheiten && maschine.besonderheiten.length > 0) {
|
||||||
|
besonderheitenHTML = '<ul class="list-unstyled mt-3">';
|
||||||
|
maschine.besonderheiten.forEach(item => {
|
||||||
|
besonderheitenHTML += `<li><i class="bi bi-check-circle-fill text-success"></i> ${item}</li>`;
|
||||||
|
});
|
||||||
|
besonderheitenHTML += '</ul>';
|
||||||
|
}
|
||||||
|
|
||||||
|
// Spezifikationen
|
||||||
|
let specsHTML = '<div class="specs mt-3 mb-3">';
|
||||||
|
if (maschine.gewicht) {
|
||||||
|
specsHTML += `<span class="badge bg-secondary me-2 mb-2"><i class="bi bi-weight"></i> ${maschine.gewicht}</span>`;
|
||||||
|
}
|
||||||
|
if (maschine.leistung) {
|
||||||
|
specsHTML += `<span class="badge bg-secondary me-2 mb-2"><i class="bi bi-lightning-charge"></i> ${maschine.leistung}</span>`;
|
||||||
|
}
|
||||||
|
if (maschine.arbeitsbreite) {
|
||||||
|
specsHTML += `<span class="badge bg-secondary me-2 mb-2"><i class="bi bi-arrows-expand"></i> ${maschine.arbeitsbreite}</span>`;
|
||||||
|
}
|
||||||
|
specsHTML += '</div>';
|
||||||
|
|
||||||
|
// Lieferung Info
|
||||||
|
let lieferungHTML = '';
|
||||||
|
if (maschine.lieferung) {
|
||||||
|
lieferungHTML = `
|
||||||
|
<div class="alert alert-info mt-3 mb-0">
|
||||||
|
<small><i class="bi bi-truck"></i> <strong>Lieferung:</strong> ${maschine.lieferung}</small>
|
||||||
|
</div>
|
||||||
|
`;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Mehrtagiger Preis
|
||||||
|
let mehrtagigHTML = '';
|
||||||
|
if (maschine.preisMehrtagig) {
|
||||||
|
mehrtagigHTML = `<p class="text-muted small mb-2">${maschine.preisMehrtagig}</p>`;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Bild HTML
|
||||||
|
let imageHTML = '';
|
||||||
|
if (maschine.image) {
|
||||||
|
imageHTML = `<img src="${maschine.image}" class="card-img-top" alt="${maschine.title}">`;
|
||||||
|
}
|
||||||
|
|
||||||
|
col.innerHTML = `
|
||||||
|
<div class="card h-100 shadow-sm hover-card">
|
||||||
|
${imageHTML}
|
||||||
|
<div class="card-header bg-primary text-white">
|
||||||
|
<h5 class="card-title mb-0">${maschine.title}</h5>
|
||||||
|
</div>
|
||||||
|
<div class="card-body">
|
||||||
|
<p class="card-text">${maschine.beschreibung}</p>
|
||||||
|
|
||||||
|
${specsHTML}
|
||||||
|
${besonderheitenHTML}
|
||||||
|
|
||||||
|
<div class="preis-box mt-auto">
|
||||||
|
<div class="d-flex justify-content-between align-items-center">
|
||||||
|
<span class="text-muted">Preis:</span>
|
||||||
|
<span class="h4 mb-0 text-primary fw-bold">${maschine.preis}</span>
|
||||||
|
</div>
|
||||||
|
${mehrtagigHTML}
|
||||||
|
</div>
|
||||||
|
|
||||||
|
${lieferungHTML}
|
||||||
|
</div>
|
||||||
|
<div class="card-footer bg-transparent border-top-0">
|
||||||
|
<a href="kontakt.html?maschine=${encodeURIComponent(maschine.title)}" class="btn btn-outline-primary w-100">
|
||||||
|
<i class="bi bi-envelope"></i> Anfrage senden
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
`;
|
||||||
|
|
||||||
|
return col;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Beim Laden der Seite
|
||||||
|
document.addEventListener('DOMContentLoaded', () => {
|
||||||
|
loadMaschinen();
|
||||||
|
|
||||||
|
// Kontaktformular: Maschine aus URL Parameter vorausfüllen
|
||||||
|
const urlParams = new URLSearchParams(window.location.search);
|
||||||
|
const maschine = urlParams.get('maschine');
|
||||||
|
const maschineInput = document.getElementById('maschine');
|
||||||
|
|
||||||
|
if (maschine && maschineInput) {
|
||||||
|
maschineInput.value = decodeURIComponent(maschine);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
// Smooth Scroll für Anker-Links
|
||||||
|
document.querySelectorAll('a[href^="#"]').forEach(anchor => {
|
||||||
|
anchor.addEventListener('click', function (e) {
|
||||||
|
e.preventDefault();
|
||||||
|
const target = document.querySelector(this.getAttribute('href'));
|
||||||
|
if (target) {
|
||||||
|
target.scrollIntoView({
|
||||||
|
behavior: 'smooth',
|
||||||
|
block: 'start'
|
||||||
|
});
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
263
kontakt.html
Normal file
@@ -0,0 +1,263 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="de">
|
||||||
|
<head>
|
||||||
|
<meta charset="UTF-8">
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||||
|
<meta name="description" content="Kontaktieren Sie Andreas Baumer für Baumaschinen und Gartengeräte Verleih">
|
||||||
|
<title>Kontakt - Andreas Baumer</title>
|
||||||
|
|
||||||
|
<!-- Bootstrap 5 CSS -->
|
||||||
|
<link href="css/bootstrap.min.css" rel="stylesheet">
|
||||||
|
<!-- Bootstrap Icons -->
|
||||||
|
<link rel="stylesheet" href="css/bootstrap-icons.css">
|
||||||
|
<!-- Custom CSS -->
|
||||||
|
<link rel="stylesheet" href="css/style.css">
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<!-- Header / Navigation -->
|
||||||
|
<header class="sticky-top">
|
||||||
|
<nav class="navbar navbar-expand-lg navbar-dark bg-primary">
|
||||||
|
<div class="container">
|
||||||
|
<a class="navbar-brand d-flex align-items-center" href="index.html">
|
||||||
|
<img src="images/logo_invert.png" alt="Andreas Baumer Logo" class="navbar-logo me-3">
|
||||||
|
<div>
|
||||||
|
<strong>Andreas Baumer</strong>
|
||||||
|
<small class="d-block text-light-emphasis" style="font-size: 0.75rem;">Baumaschinen & Gartengeräte</small>
|
||||||
|
</div>
|
||||||
|
</a>
|
||||||
|
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarNav">
|
||||||
|
<span class="navbar-toggler-icon"></span>
|
||||||
|
</button>
|
||||||
|
<div class="collapse navbar-collapse" id="navbarNav">
|
||||||
|
<ul class="navbar-nav ms-auto">
|
||||||
|
<li class="nav-item">
|
||||||
|
<a class="nav-link" href="index.html">Start</a>
|
||||||
|
</li>
|
||||||
|
<li class="nav-item">
|
||||||
|
<a class="nav-link active" href="kontakt.html">Kontakt</a>
|
||||||
|
</li>
|
||||||
|
<li class="nav-item">
|
||||||
|
<a class="nav-link" href="impressum.html">Impressum</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</nav>
|
||||||
|
|
||||||
|
<!-- Contact Bar -->
|
||||||
|
<div class="contact-bar bg-primary-subtle py-2">
|
||||||
|
<div class="container">
|
||||||
|
<div class="row g-2 text-center text-lg-start">
|
||||||
|
<div class="col-lg-4 col-12">
|
||||||
|
<i class="bi bi-telephone-fill text-primary"></i>
|
||||||
|
<a href="tel:+4994739515530" class="text-decoration-none text-dark ms-2">+49 (0) 9473 951 5530</a>
|
||||||
|
</div>
|
||||||
|
<div class="col-lg-4 col-12">
|
||||||
|
<i class="bi bi-phone-fill text-primary"></i>
|
||||||
|
<a href="tel:+49160966074 70" class="text-decoration-none text-dark ms-2">+49 (0) 160 966 074 70</a>
|
||||||
|
</div>
|
||||||
|
<div class="col-lg-4 col-12">
|
||||||
|
<i class="bi bi-envelope-fill text-primary"></i>
|
||||||
|
<a href="mailto:baumer@traidendorf.de" class="text-decoration-none text-dark ms-2">baumer@traidendorf.de</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</header>
|
||||||
|
|
||||||
|
<!-- Page Header -->
|
||||||
|
<section class="py-5 bg-light">
|
||||||
|
<div class="container text-center">
|
||||||
|
<h1 class="display-4 text-primary mb-3">Kontakt</h1>
|
||||||
|
<p class="lead">Haben Sie Fragen zu unseren Maschinen? Kontaktieren Sie uns gerne!</p>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<!-- Contact Content -->
|
||||||
|
<section class="py-5">
|
||||||
|
<div class="container">
|
||||||
|
<div class="row g-4">
|
||||||
|
<!-- Contact Information -->
|
||||||
|
<div class="col-lg-5">
|
||||||
|
<div class="contact-info-box">
|
||||||
|
<h4><i class="bi bi-person-circle"></i> Andreas Baumer</h4>
|
||||||
|
|
||||||
|
<div class="info-item">
|
||||||
|
<i class="bi bi-geo-alt-fill"></i>
|
||||||
|
<div class="d-inline-block">
|
||||||
|
<strong>Adresse</strong><br>
|
||||||
|
Angerstraße 19<br>
|
||||||
|
93183 Kallmünz<br>
|
||||||
|
Ortsteil Traidendorf
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="info-item">
|
||||||
|
<i class="bi bi-telephone-fill"></i>
|
||||||
|
<div class="d-inline-block">
|
||||||
|
<strong>Telefon</strong><br>
|
||||||
|
<a href="tel:+4994739515530">+49 (0) 9473 951 5530</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="info-item">
|
||||||
|
<i class="bi bi-phone-fill"></i>
|
||||||
|
<div class="d-inline-block">
|
||||||
|
<strong>Mobil / WhatsApp</strong><br>
|
||||||
|
<a href="tel:+49160966074 70">+49 (0) 160 966 074 70</a><br>
|
||||||
|
<small>Auch per WhatsApp erreichbar</small>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="info-item">
|
||||||
|
<i class="bi bi-envelope-fill"></i>
|
||||||
|
<div class="d-inline-block">
|
||||||
|
<strong>E-Mail</strong><br>
|
||||||
|
<a href="mailto:baumer@traidendorf.de">baumer@traidendorf.de</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="info-item">
|
||||||
|
<i class="bi bi-clock-fill"></i>
|
||||||
|
<div class="d-inline-block">
|
||||||
|
<strong>Erreichbarkeit</strong><br>
|
||||||
|
Montag - Freitag: Nach Vereinbarung<br>
|
||||||
|
Wochenende: Nach Vereinbarung<br>
|
||||||
|
<small>Bitte kontaktieren Sie uns telefonisch oder per E-Mail.</small>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- Contact Form -->
|
||||||
|
<div class="col-lg-7">
|
||||||
|
<div class="card shadow">
|
||||||
|
<div class="card-body p-4">
|
||||||
|
<h4 class="card-title mb-4">Anfrage senden</h4>
|
||||||
|
|
||||||
|
<!-- Erfolgs-/Fehlermeldung -->
|
||||||
|
<div id="alertSuccess" class="alert alert-success alert-dismissible fade show d-none" role="alert">
|
||||||
|
<i class="bi bi-check-circle-fill"></i>
|
||||||
|
<strong>Vielen Dank!</strong> Ihre Nachricht wurde erfolgreich versendet. Wir melden uns in Kürze bei Ihnen.
|
||||||
|
<button type="button" class="btn-close" data-bs-dismiss="alert"></button>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div id="alertError" class="alert alert-danger alert-dismissible fade show d-none" role="alert">
|
||||||
|
<i class="bi bi-exclamation-triangle-fill"></i>
|
||||||
|
<strong>Fehler!</strong> Ihre Nachricht konnte nicht gesendet werden. Bitte versuchen Sie es erneut oder kontaktieren Sie uns telefonisch.
|
||||||
|
<button type="button" class="btn-close" data-bs-dismiss="alert"></button>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<form action="send-mail.php" method="POST" id="contactForm">
|
||||||
|
<!-- Honeypot für Spam-Schutz (versteckt) -->
|
||||||
|
<input type="text" name="website" style="display:none" tabindex="-1" autocomplete="off">
|
||||||
|
|
||||||
|
<div class="row g-3">
|
||||||
|
<div class="col-md-6">
|
||||||
|
<label for="name" class="form-label">Name *</label>
|
||||||
|
<input type="text" class="form-control" id="name" name="name" required>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="col-md-6">
|
||||||
|
<label for="email" class="form-label">E-Mail *</label>
|
||||||
|
<input type="email" class="form-control" id="email" name="email" required>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="col-md-6">
|
||||||
|
<label for="phone" class="form-label">Telefon</label>
|
||||||
|
<input type="tel" class="form-control" id="phone" name="phone">
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="col-md-6">
|
||||||
|
<label for="maschine" class="form-label">Gewünschte Maschine</label>
|
||||||
|
<input type="text" class="form-control" id="maschine" name="maschine"
|
||||||
|
placeholder="z.B. Minibagger 2.0 Tonnen">
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="col-12">
|
||||||
|
<label for="zeitraum" class="form-label">Gewünschter Zeitraum</label>
|
||||||
|
<input type="text" class="form-control" id="zeitraum" name="zeitraum"
|
||||||
|
placeholder="z.B. 15.03.2026 - 17.03.2026">
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="col-12">
|
||||||
|
<label for="nachricht" class="form-label">Nachricht *</label>
|
||||||
|
<textarea class="form-control" id="nachricht" name="nachricht"
|
||||||
|
rows="5" required></textarea>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="col-12">
|
||||||
|
<button type="submit" class="btn btn-primary btn-lg w-100" id="submitBtn">
|
||||||
|
<i class="bi bi-send"></i> Anfrage senden
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="col-12">
|
||||||
|
<p class="text-muted small mb-0">
|
||||||
|
* Pflichtfelder<br>
|
||||||
|
Ihre Daten werden vertraulich behandelt und nur zur Bearbeitung Ihrer Anfrage verwendet.
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<!-- Footer -->
|
||||||
|
<footer class="bg-dark text-white py-5">
|
||||||
|
<div class="container">
|
||||||
|
<div class="row g-4">
|
||||||
|
<div class="col-md-4">
|
||||||
|
<h5 class="text-success mb-3">Andreas Baumer</h5>
|
||||||
|
<p class="mb-1">Angerstraße 19</p>
|
||||||
|
<p class="mb-1">93183 Kallmünz</p>
|
||||||
|
<p>Ortsteil Traidendorf</p>
|
||||||
|
</div>
|
||||||
|
<div class="col-md-4">
|
||||||
|
<h5 class="text-success mb-3">Kontakt</h5>
|
||||||
|
<p class="mb-1">
|
||||||
|
<i class="bi bi-telephone"></i>
|
||||||
|
<a href="tel:+4994739515530" class="text-white text-decoration-none">+49 (0) 9473 951 5530</a>
|
||||||
|
</p>
|
||||||
|
<p class="mb-1">
|
||||||
|
<i class="bi bi-phone"></i>
|
||||||
|
<a href="tel:+49160966074 70" class="text-white text-decoration-none">+49 (0) 160 966 074 70</a>
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
<i class="bi bi-envelope"></i>
|
||||||
|
<a href="mailto:baumer@traidendorf.de" class="text-white text-decoration-none">baumer@traidendorf.de</a>
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
<div class="col-md-4">
|
||||||
|
<h5 class="text-success mb-3">Rechtliches</h5>
|
||||||
|
<ul class="list-unstyled">
|
||||||
|
<li class="mb-2">
|
||||||
|
<a href="impressum.html" class="text-white text-decoration-none">
|
||||||
|
<i class="bi bi-arrow-right"></i> Impressum
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<a href="datenschutz.html" class="text-white text-decoration-none">
|
||||||
|
<i class="bi bi-arrow-right"></i> Datenschutz
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<hr class="my-4 bg-light">
|
||||||
|
<div class="text-center">
|
||||||
|
<p class="mb-0">© <span id="year"></span> Andreas Baumer - Alle Rechte vorbehalten</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</footer>
|
||||||
|
|
||||||
|
<!-- Bootstrap JS -->
|
||||||
|
<script src="js/bootstrap.bundle.min.js"></script>
|
||||||
|
<!-- Custom JS -->
|
||||||
|
<script src="js/main.js"></script>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
211
send-mail.php
Normal file
@@ -0,0 +1,211 @@
|
|||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* Kontaktformular Mail-Script mit PHPMailer
|
||||||
|
* Baumer Maschinenverleih
|
||||||
|
*/
|
||||||
|
|
||||||
|
// Fehlerberichterstattung
|
||||||
|
error_reporting(E_ALL);
|
||||||
|
ini_set('display_errors', 0); // Auf dem Live-Server auf 0 setzen
|
||||||
|
ini_set('log_errors', 1);
|
||||||
|
|
||||||
|
// Session für Rate Limiting
|
||||||
|
session_start();
|
||||||
|
|
||||||
|
// Konfiguration laden
|
||||||
|
require_once 'config.php';
|
||||||
|
|
||||||
|
// PHPMailer laden
|
||||||
|
require_once 'phpmailer/Exception.php';
|
||||||
|
require_once 'phpmailer/PHPMailer.php';
|
||||||
|
require_once 'phpmailer/SMTP.php';
|
||||||
|
|
||||||
|
use PHPMailer\PHPMailer\PHPMailer;
|
||||||
|
use PHPMailer\PHPMailer\Exception;
|
||||||
|
|
||||||
|
// Funktion für sichere Ausgabe
|
||||||
|
function clean($data) {
|
||||||
|
return htmlspecialchars(strip_tags(trim($data)), ENT_QUOTES, 'UTF-8');
|
||||||
|
}
|
||||||
|
|
||||||
|
// Funktion für Rate Limiting
|
||||||
|
function checkRateLimit() {
|
||||||
|
$ip = $_SERVER['REMOTE_ADDR'];
|
||||||
|
$now = time();
|
||||||
|
|
||||||
|
if (isset($_SESSION['last_submit_' . $ip])) {
|
||||||
|
$timeSinceLastSubmit = $now - $_SESSION['last_submit_' . $ip];
|
||||||
|
if ($timeSinceLastSubmit < RATE_LIMIT_SECONDS) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
$_SESSION['last_submit_' . $ip] = $now;
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Nur POST-Anfragen erlauben
|
||||||
|
if ($_SERVER['REQUEST_METHOD'] !== 'POST') {
|
||||||
|
header('Location: kontakt.html');
|
||||||
|
exit;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Rate Limiting prüfen
|
||||||
|
if (!checkRateLimit()) {
|
||||||
|
header('Location: ' . ERROR_URL . '&reason=rate_limit');
|
||||||
|
exit;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Honeypot-Spam-Schutz (verstecktes Feld - sollte leer sein)
|
||||||
|
if (!empty($_POST[HONEYPOT_FIELD])) {
|
||||||
|
// Spam erkannt - still ablehnen
|
||||||
|
header('Location: ' . SUCCESS_URL);
|
||||||
|
exit;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Formulardaten validieren
|
||||||
|
$name = isset($_POST['name']) ? clean($_POST['name']) : '';
|
||||||
|
$email = isset($_POST['email']) ? clean($_POST['email']) : '';
|
||||||
|
$phone = isset($_POST['phone']) ? clean($_POST['phone']) : '';
|
||||||
|
$maschine = isset($_POST['maschine']) ? clean($_POST['maschine']) : '';
|
||||||
|
$zeitraum = isset($_POST['zeitraum']) ? clean($_POST['zeitraum']) : '';
|
||||||
|
$nachricht = isset($_POST['nachricht']) ? clean($_POST['nachricht']) : '';
|
||||||
|
|
||||||
|
// Pflichtfelder prüfen
|
||||||
|
if (empty($name) || empty($email) || empty($nachricht)) {
|
||||||
|
header('Location: ' . ERROR_URL . '&reason=missing_fields');
|
||||||
|
exit;
|
||||||
|
}
|
||||||
|
|
||||||
|
// E-Mail-Format validieren
|
||||||
|
if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
|
||||||
|
header('Location: ' . ERROR_URL . '&reason=invalid_email');
|
||||||
|
exit;
|
||||||
|
}
|
||||||
|
|
||||||
|
// PHPMailer initialisieren
|
||||||
|
$mail = new PHPMailer(true);
|
||||||
|
|
||||||
|
try {
|
||||||
|
// Server-Einstellungen
|
||||||
|
$mail->CharSet = 'UTF-8';
|
||||||
|
|
||||||
|
if (USE_SMTP) {
|
||||||
|
$mail->isSMTP();
|
||||||
|
$mail->Host = SMTP_HOST;
|
||||||
|
$mail->SMTPAuth = true;
|
||||||
|
$mail->Username = SMTP_USERNAME;
|
||||||
|
$mail->Password = SMTP_PASSWORD;
|
||||||
|
$mail->SMTPSecure = SMTP_SECURE;
|
||||||
|
$mail->Port = SMTP_PORT;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Empfänger
|
||||||
|
$mail->setFrom(MAIL_FROM, MAIL_FROM_NAME);
|
||||||
|
$mail->addAddress(MAIL_TO, 'Andreas Baumer');
|
||||||
|
$mail->addReplyTo($email, $name);
|
||||||
|
|
||||||
|
// Inhalt
|
||||||
|
$mail->isHTML(true);
|
||||||
|
$mail->Subject = 'Neue Anfrage über Kontaktformular';
|
||||||
|
|
||||||
|
// E-Mail-Body
|
||||||
|
$mailBody = '
|
||||||
|
<html>
|
||||||
|
<head>
|
||||||
|
<style>
|
||||||
|
body { font-family: Arial, sans-serif; line-height: 1.6; color: #333; }
|
||||||
|
.container { max-width: 600px; margin: 0 auto; padding: 20px; }
|
||||||
|
.header { background: #2c5f2d; color: white; padding: 20px; text-align: center; }
|
||||||
|
.content { background: #f8f9fa; padding: 20px; margin: 20px 0; }
|
||||||
|
.field { margin-bottom: 15px; padding: 10px; background: white; border-left: 3px solid #2c5f2d; }
|
||||||
|
.label { font-weight: bold; color: #2c5f2d; }
|
||||||
|
.value { margin-top: 5px; }
|
||||||
|
.footer { text-align: center; color: #666; font-size: 12px; margin-top: 20px; }
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div class="container">
|
||||||
|
<div class="header">
|
||||||
|
<h2>Neue Kontaktanfrage</h2>
|
||||||
|
<p>Baumer Maschinenverleih</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="content">
|
||||||
|
<div class="field">
|
||||||
|
<div class="label">Name:</div>
|
||||||
|
<div class="value">' . $name . '</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="field">
|
||||||
|
<div class="label">E-Mail:</div>
|
||||||
|
<div class="value"><a href="mailto:' . $email . '">' . $email . '</a></div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
' . (!empty($phone) ? '
|
||||||
|
<div class="field">
|
||||||
|
<div class="label">Telefon:</div>
|
||||||
|
<div class="value"><a href="tel:' . $phone . '">' . $phone . '</a></div>
|
||||||
|
</div>
|
||||||
|
' : '') . '
|
||||||
|
|
||||||
|
' . (!empty($maschine) ? '
|
||||||
|
<div class="field">
|
||||||
|
<div class="label">Gewünschte Maschine:</div>
|
||||||
|
<div class="value">' . $maschine . '</div>
|
||||||
|
</div>
|
||||||
|
' : '') . '
|
||||||
|
|
||||||
|
' . (!empty($zeitraum) ? '
|
||||||
|
<div class="field">
|
||||||
|
<div class="label">Gewünschter Zeitraum:</div>
|
||||||
|
<div class="value">' . $zeitraum . '</div>
|
||||||
|
</div>
|
||||||
|
' : '') . '
|
||||||
|
|
||||||
|
<div class="field">
|
||||||
|
<div class="label">Nachricht:</div>
|
||||||
|
<div class="value">' . nl2br($nachricht) . '</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="footer">
|
||||||
|
<p>Diese E-Mail wurde über das Kontaktformular auf baumer.traidendorf.de gesendet</p>
|
||||||
|
<p>IP-Adresse: ' . $_SERVER['REMOTE_ADDR'] . ' | Zeitpunkt: ' . date('d.m.Y H:i:s') . '</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
|
';
|
||||||
|
|
||||||
|
$mail->Body = $mailBody;
|
||||||
|
|
||||||
|
// Alternative Text-Version (für E-Mail-Clients ohne HTML)
|
||||||
|
$mail->AltBody =
|
||||||
|
"Neue Kontaktanfrage - Baumer Maschinenverleih\n\n" .
|
||||||
|
"Name: $name\n" .
|
||||||
|
"E-Mail: $email\n" .
|
||||||
|
($phone ? "Telefon: $phone\n" : "") .
|
||||||
|
($maschine ? "Gewünschte Maschine: $maschine\n" : "") .
|
||||||
|
($zeitraum ? "Gewünschter Zeitraum: $zeitraum\n" : "") .
|
||||||
|
"\nNachricht:\n$nachricht\n\n" .
|
||||||
|
"---\n" .
|
||||||
|
"IP: " . $_SERVER['REMOTE_ADDR'] . "\n" .
|
||||||
|
"Zeitpunkt: " . date('d.m.Y H:i:s');
|
||||||
|
|
||||||
|
// E-Mail senden
|
||||||
|
$mail->send();
|
||||||
|
|
||||||
|
// Erfolg - weiterleiten
|
||||||
|
header('Location: ' . SUCCESS_URL);
|
||||||
|
exit;
|
||||||
|
|
||||||
|
} catch (Exception $e) {
|
||||||
|
// Fehler loggen
|
||||||
|
error_log("Mail-Fehler: {$mail->ErrorInfo}");
|
||||||
|
|
||||||
|
// Fehlerseite
|
||||||
|
header('Location: ' . ERROR_URL . '&reason=send_error');
|
||||||
|
exit;
|
||||||
|
}
|
||||||
|
?>
|
||||||