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.