Version vom 25.08.2025
Anleitung zum Kontaktformular
Dies ist ein generiertes PHP-Formular mit erweiterten CAPTCHA-Funktionen und automatischer Kopie-Funktionalität.
© 2025 Volker Niederastroth
Haftungsausschluss / Disclaimer
Die bereitgestellten PHP-Skripte werden ohne jegliche Gewährleistung zur Verfügung gestellt.
Der Anbieter übernimmt keine Verantwortung für Schäden, Datenverluste, Fehlfunktionen oder sonstige Nachteile, die durch die Nutzung der Skripte entstehen könnten.
Die Nutzung erfolgt auf eigenes Risiko.
Jegliche Haftung – gleich aus welchem Rechtsgrund – ist soweit gesetzlich zulässig ausgeschlossen.
WICHTIGER HINWEIS
Bitte verhindert den direkten Aufruf der geframten Seite wie folgt
Bitte diesen Code unter die Meta-Tags setzen bei den Dateien `index.php` und `success.php`
Dadurch wird auf die angegebene URL umgeleitet, wenn diese geframten Seiten direkt aufgerufen werden sollten.
IFRAME OPTIMIERUNG
- Wenn das Formular in einem Iframe läuft sind schon Scripte dafür implementiert.
- Das ist der Einbaucode in Eurer Webseite:
- In Mobirise muss der Block in dem das Iframe eingebaut ist zwingend die id="Formular" haben
- Das Iframe muss die id="myFrame" haben - sonst funktioniert das nicht, da diese IDs in den JavaScripts so eingetragen sind!
NEUE FUNKTIONEN:
- Automatische Kopie-Checkbox: Bei jedem generierten Formular wird eine Checkbox hinzugefügt, die es dem Absender ermöglicht, eine Kopie seiner Nachricht zu erhalten
- Die Kopie wird an die im Formular angegebene E-Mail-Adresse gesendet und enthält alle Formulardaten sowie Anhänge
- Verbesserte SMTP-Unterstützung mit automatischem Fallback und detaillierter Fehlerbehandlung
SMTP-VERBESSERUNGEN:
- Automatische Validierung der SMTP-Konfiguration
- Intelligenter Fallback auf Standard-Mail bei SMTP-Problemen
- Spezifische Fehlermeldungen für verschiedene SMTP-Probleme
- Retry-Mechanismus bei temporären Verbindungsfehlern
- SSL/TLS-Optionen für problematische Server
- Timeout-Einstellungen zur Vermeidung hängender Verbindungen
Um einen noch besseren Schutz zu erhalten empfehle ich eine .htaccess Datei zu erstellen.
Diese schützt zuverlässig den uploads Ordner und kommt auch in diesen !
# Komplett verbieten der Ausführung von Scripts
Options -ExecCGI -Indexes
RemoveHandler .php .phtml .php3 .php4 .php5 .php7 .php8 .pl .py .jsp .asp .sh .cgi
# PHP-Ausführung komplett deaktivieren
php_flag engine off
# Gefährliche Dateitypen blockieren
Order Allow,Deny
Deny from all
# .htaccess und andere sensible Dateien schützen
Order Allow,Deny
Deny from all
# Nur bestimmte Dateitypen erlauben (anpassen nach Bedarf)
Order Allow,Deny
Allow from all
# Alle anderen Dateitypen blockieren
Order Allow,Deny
Deny from all
# Directory Browsing verhindern
Options -Indexes
# Server-Signatur ausblenden
ServerSignature Off
# Hotlinking verhindern (optional - Domain anpassen)
RewriteEngine On
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^https?://(www\.)?deine-domain\.de [NC]
RewriteRule \.(jpg|jpeg|png|gif|pdf)$ - [F,L]
# File-Upload-Limits (falls PHP trotz Deaktivierung irgendwie läuft)
php_value upload_max_filesize 10M
php_value post_max_size 10M
# Gefährliche HTTP-Methoden blockieren
Order Allow,Deny
Deny from all
# Content-Type Sniffing verhindern
Header always set X-Content-Type-Options nosniff
Header always set X-Frame-Options DENY
Header always set X-XSS-Protection "1; mode=block"
Installation
1. Laden Sie den Inhalt dieses Ordners auf Ihren Webserver hoch.
2. Stellen Sie sicher, dass Ihr Webserver PHP mit GD-Extension unterstützt (für Bild-CAPTCHA).
3. Die Datei `send.php` ist so konfiguriert, dass sie E-Mails an die in der Konfiguration angegebene Adresse sendet.
4. Der Ordner `uploads` dient als temporärer Speicherort für hochgeladene Dateien. Achten Sie auf die korrekten Schreibrechte (typischerweise 755 oder 775).
Wenn keine Daten hochgeladen werden, kann der auch gelöscht werden
CAPTCHA-Hinweise:
- Das Bild-CAPTCHA verwendet die PHP GD-Extension
- Die Datei captcha.php generiert die CAPTCHA-Bilder dynamisch
- CAPTCHA-Codes werden in der PHP-Session gespeichert
- Nach jedem fehlgeschlagenen Versuch wird ein neuer Code generiert
Sicherheitsfeatures:
- CSRF-Token-Schutz
- Honeypot-Anti-Spam-Feld
- Zeitbasierte Spam-Erkennung
- Automatische Kopie-Checkbox für Absender
- Bild-CAPTCHA mit Störelementen
Kopie-Funktion:
- Bei jedem Formular wird automatisch eine Checkbox "Kopie an mich senden" hinzugefügt
- Wenn aktiviert, erhält der Absender eine Kopie seiner Nachricht an die angegebene E-Mail-Adresse
- Die Kopie enthält alle Formulardaten und Anhänge
- Die Kopie wird zusätzlich zur normalen Formular-E-Mail und automatischen Antwort versendet
SMTP-Konfiguration:
Um SMTP zu verwenden, entkommentieren Sie die entsprechenden Zeilen in der send.php und tragen Sie Ihre Daten ein:
- $smtp_host: Ihr SMTP-Server (z.B. smtp.gmail.com)
- $smtp_port: SMTP-Port (587 für TLS, 465 für SSL)
- $smtp_secure: Verschlüsselung ("tls" oder "ssl")
- $smtp_user: Ihr SMTP-Benutzername
- $smtp_pass: Ihr SMTP-Passwort
- $smtp_from_name: Name des Absenders
Das System erkennt automatisch, ob SMTP konfiguriert ist und verwendet es entsprechend.
Bei Problemen wird automatisch auf Standard-PHP-Mail zurückgegriffen.