zurück zur Startseite
  


Zurück XHTMLforum > Webentwicklung (außer XHTML und CSS) > Serveradministration und serverseitige Scripte
Seite neu laden Vorbildliches und sicheres Kontaktformular?

Antwort
 
LinkBack Themen-Optionen Ansicht
  #1 (permalink)  
Alt 14.05.2019, 12:15
Benutzerbild von AndreasB
Erfahrener Benutzer
XHTMLforum-Kenner
Thread-Ersteller
 
Registriert seit: 29.11.2005
Beiträge: 1.391
AndreasB wird schon bald berühmt werden
Standard Vorbildliches und sicheres Kontaktformular?

Moin.


Immer wieder liest man Hinweise, wie es wichtig sei, ein Kontaktformular hinreichend abzusichern, damit es nicht zur Spamschleuder wird.


Beispiel:
https://www.freecontactform.com/email_form.php


Ich suche nun ein Skript, welches auf vorbildliche Weise aufgebaut ist und welches sich leicht um weitere Felder (natürlich HTML5) von mir erweitern lässt.


Ideal fänd ich ein Skript, wo der auszugebenden HTML-Code nicht mitten im PHP-Skript stehen muss. Aber wenn ich es richtig verstehe geht dies nur, wenn die Technik "DOM" (https://www.php.net/manual/en/book.dom.php) verwendet wird - die wohl unter Programmierern als kompliziert gilt.

Zur Spamvermeidung:
Gilt <https://www.google.com/recaptcha/intro/v3.html> als empfehlenswert?

Beispiel HTML für ein minimales Kontaktformular:

HTML-Code:
<form method="post" id="kontakt-formular" action="">
    <div>
      <label for="mail">Mail *</label>
      <input id="mail" name="foo-mail" type="email" required  />
    </div>
    <div>
      <label for="nachricht">Deine Nachricht an uns</label>
      <textarea id="nachricht" name="foo-nachricht"></textarea>
    </div>
    <div>
        <label for="kopie-senden">Kopie an meine Mailadresse senden</label>
        <input id="kopie-senden" type="checkbox" value="bar-kopie-senden" name="foo-kopie-senden" />
    </div>
    <div>
      <button type="submit">Senden</button>
    </div>
    <p>* Bitte fülle dieses Feld unbedingt aus, denn sonst könnten wir Dir nicht antworten und das wäre doch schade.</p>
</form>
Als sinnvolle Rückgabe vom Server nach erfolgreichem Senden stelle ich mir vor, dass der gesamte gesendete Inhalt gezeigt wird und oben drüber irgendwas steht wie "Deine Nachricht wurde an uns übermittelt, wir melden uns bei Dir."


Eine clientseitige Validierung durch JS soll erstmal außen vor bleiben. Clientseitig soll HTML5 genügen.



Kann jemand von euch ein Skript empfehlen, welches den genannten Kriterien genügt?

Ich würde mich über einen Rat freuen.
Danke.

Kleinigkeit am Rande:
Wenn ich es richtig verstehe, ist es nötig/üblich zusätzlich zu einem Wert für das Attribut id auch die Attribute value und name anzugeben. Falls es skripttechnisch jedoch möglich wäre auf value und name zu verzichten, hätte man weniger Redundanz im System.

Noch eine Kleinigkeit:
Ist es sinnvoll bei der Rückmeldung eines erfolgreichen Versands eine neue URL zurückzugeben?
Also z.B. "example.tld/kontaktformular-erfolgreich-versendet" oder würdet ihr für die Erfolgsmeldung die gleiche URL zurückgeben, auf der auch das Kontaktformular liegt, wie z.B. "example.tld/kontakt"?
__________________


Geändert von AndreasB (14.05.2019 um 12:50 Uhr)
Mit Zitat antworten
Sponsored Links
  #2 (permalink)  
Alt 15.05.2019, 09:16
Erfahrener Benutzer
XHTMLforum-Kenner
 
Registriert seit: 30.01.2014
Beiträge: 2.247
cloned ist ein wunderbarer Anblickcloned ist ein wunderbarer Anblickcloned ist ein wunderbarer Anblickcloned ist ein wunderbarer Anblickcloned ist ein wunderbarer Anblickcloned ist ein wunderbarer Anblickcloned ist ein wunderbarer Anblick
Standard

Ich ignoriere einfach mal das vorbildlich weil das kann nicht bewertet werden.
Was man sagen kann: Dein HTML-Formular schaut doch ganz ok aus, dann musst du damit doch nur noch das backend dafür schreiben. Muss es in PHP sein?

Hier hast du zb ein relativ aktuelles Beispiel https://code.tutsplus.com/tutorials/...php--cms-32314

google recaptcha wird auf millionen Websites eingesetzt, das kann also bedenkenlos eingesetzt werden, sofern man es denn verwenden will und die Datenschutzrichtlinien von google ausreichend sind etc.

Du wirst aber kein Skript finden welches exakt deinen Anforderungen entspricht, um kleine Anpassungen wirst du nicht herumkommen.

Kleinigkeit eins wurde damals in deinem letzten Thread schon besprochen, hier aber gerne nochmal die Zusammenfassung: Du brauchst name um den Wert auch im Backend verarbeiten zu können. value und id brauchst du nur fürs HTML, die kannst du also weglassen. Dank Variablen braucht dich die redundanz aber nicht zu stören, du kannst eine Variable definieren und diese dann als Wert in id, value und name einfügen, dann hast du dadurch dann 0 redundanz in deinem Code.

Sicher kann es sinnvoll sein eine neue URL zurückzugeben, du musst dann nur darauf achten was passiert wenn jemand die URL aufruft ohne Daten mitzuschicken.
Mit Zitat antworten
Sponsored Links
  #3 (permalink)  
Alt 15.05.2019, 11:01
Benutzerbild von AndreasB
Erfahrener Benutzer
XHTMLforum-Kenner
Thread-Ersteller
 
Registriert seit: 29.11.2005
Beiträge: 1.391
AndreasB wird schon bald berühmt werden
Standard

@cloned
Vielen Dank für den Hinweis zu dem Tutorial.


Da ich ja hier in der Kategorie "serverseitige Skripte" gepostet habe, ging es mir um die Vorbildlichkeit des Skriptes und weniger um die des HTML.


Wie bewertet ihr erfahrenen Programmierer das Skript aus dem von Dir genannten Tutorial?


Und weiterhin interessiert mich:
Ist euch schonmal eines untergekommen, wo die Technik "DOM" sinnvoll eingesetzt wird? Oder sollte ich davon die Finger lassen, weil es von einem Laien wie mir ganz sicher nicht angepasst werden kann?
__________________

Mit Zitat antworten
  #4 (permalink)  
Alt 15.05.2019, 11:03
Erfahrener Benutzer
XHTMLforum-Kenner
 
Registriert seit: 30.01.2014
Beiträge: 2.247
cloned ist ein wunderbarer Anblickcloned ist ein wunderbarer Anblickcloned ist ein wunderbarer Anblickcloned ist ein wunderbarer Anblickcloned ist ein wunderbarer Anblickcloned ist ein wunderbarer Anblickcloned ist ein wunderbarer Anblick
Standard

Für mich, als jemand, der sich kaum mit PHP auskennt schaut das Skript nach einem sehr guten Startpunkt aus.

Deshalb kann ich dir auch nichts zur "DOM" Technik sagen, aber was genau ist dein Problem damit, dass der Code im File steht? Du baust das Formular ja sowieso nur einmal und irgendwo muss der Code doch stehen?
Mit Zitat antworten
  #5 (permalink)  
Alt 15.05.2019, 11:19
Benutzerbild von AndreasB
Erfahrener Benutzer
XHTMLforum-Kenner
Thread-Ersteller
 
Registriert seit: 29.11.2005
Beiträge: 1.391
AndreasB wird schon bald berühmt werden
Standard

Zur "DOM"-Technik:
Ich halte es für einen sehr eleganten Ansatz, wenn das Skript auf strukturierten HTML-Code zugreifen kann.
Und dies wiederum erlaubt eine (stärkere) Trennung von Skript-Code und auszugebendem Code. Das ist - so vermute ich - deutlich übersichtlicher und auch leichter erweiterbar.


Aber wir sollten in diesem Thread keine Zeit auf solche Debatten verschwenden.


Mich interessiert einfach ein PHP-Skript für ein Kontaktformular, welches diese Technik einsetzt.


Bisher konnte ich keines finden.
__________________

Mit Zitat antworten
  #6 (permalink)  
Alt 15.05.2019, 11:45
Erfahrener Benutzer
XHTMLforum-Kenner
 
Registriert seit: 30.01.2014
Beiträge: 2.247
cloned ist ein wunderbarer Anblickcloned ist ein wunderbarer Anblickcloned ist ein wunderbarer Anblickcloned ist ein wunderbarer Anblickcloned ist ein wunderbarer Anblickcloned ist ein wunderbarer Anblickcloned ist ein wunderbarer Anblick
Standard

Soweit ich das jetzt mit 5 Minuten googlen herausgefunden habe ist die DOM Technik in PHP nicht viel anders als der DOM welcher im Javascript / Browser schon existiert. Daher frage ich mich, wieso du darauf kommst, damit ein Login Formular zu bauen? Das ist doch dazu gedacht, ein bereits bestehendes Dokument zu parsen? Sprich du musst vorher dein HTML woanders stehen haben.

Gibt bestimmt auch ein PHP Framework womit du dir deine Elemente dynamisch erstellen kannst. Dann hast du aber erheblichen Overhead welcher für ein einfaches Kontaktformular nicht notwendig ist.
Du kannst auch dein PHP File so aufbauen dass Skript- und auszugebender Code sauber getrennt ist, siehe hier zB wieder mein Beispiel -> HTML und Skript Code sind voneinander getrennt.
Dort hast du, der einfachheit halber, den Ausgabestring in einer Zeile stehen, damit es einfacher lesbar ist. Du kannst natürlich auch an der Stelle einfach eine gesamte HTML Datei ausgeben lassen: https://stackoverflow.com/questions/...ml-file-in-php

Aber um so etwas wirst du nicht herumkommen, du wirst deine Logik haben und in dieser dann sagen -> Wenn X, dann zeig "ABC" an, wenn Y, dann zeig "DEF" an. Daran führt dir kein Weg vorbei. Du musst nur selber entscheiden in wie viele einzelne Dateien du das aufteilen musst.
Mit Zitat antworten
  #7 (permalink)  
Alt 16.05.2019, 08:50
Benutzerbild von protonenbeschleuniger
Verbesserer
XHTMLforum-Kenner
 
Registriert seit: 06.09.2007
Beiträge: 4.977
protonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblick
Standard

Wie immer etwas abegedriftet.

Wie kommst du hier darauf, dass das DOM eine Rolle für dich spielt?
Das DOM brauchst du Serverseitig nur, wenn du bestehende fremde Seiten parsen möchtest, aber nicht um neue Seite aufzubauen.

Für ein Mailerskript ist als aller erstes relevant, dass die Empfänger sicher sind. wenn du diese fest "verdrahtest" kann es auch nicht als Spamschleder benutzt werden.
Dann ist es wichtig wie die Mail angezeigt wird. Wenn dort HTML oder gar Javascript ausgeführt wird, dann muss dieses auf jeden Fall gefiltert oder entsprechned maskiert werden werden. Wer sich Mails nur als Text anzeigen läßt, muss darauf nicht achten.

Das erste Skript erfüllt diese Anforderung z.T. läßt aber keine Umlaute beim Namen zu. Das von cloned schon und filtert darüber hinaus genauer.
Mit Zitat antworten
  #8 (permalink)  
Alt 16.05.2019, 10:45
Erfahrener Benutzer
XHTMLforum-Kenner
 
Registriert seit: 30.01.2014
Beiträge: 2.247
cloned ist ein wunderbarer Anblickcloned ist ein wunderbarer Anblickcloned ist ein wunderbarer Anblickcloned ist ein wunderbarer Anblickcloned ist ein wunderbarer Anblickcloned ist ein wunderbarer Anblickcloned ist ein wunderbarer Anblick
Standard

Zitat:
Zitat von protonenbeschleuniger Beitrag anzeigen
Das erste Skript erfüllt diese Anforderung z.T. läßt aber keine Umlaute beim Namen zu. Das von cloned schon und filtert darüber hinaus genauer.

Ich empfehle sowieso bei jedem solchen Inhalt vom Internet, sei es nun für PHP oder sonst was zu überprüfen, ob auch die eigenen Anforderungen erfüllt sind. Bei vielen englisch-sprachigen Tutorials wird (verständlicherweise) nur auf die englische Sprache geschaut, deutsche Sprache muss oft erst hinzugefügt werden.
Was dann aber nicht heißt dass eine Variante schlechter ist, es kann ja durchaus gewünscht sein, dass gewisse Zeichen nicht zugelassen sind. Das sind dann also beides "vorbildliche" Kontaktformulare.

Diese Überprüfung auf die eigenen Bedürfnisse beinhaltet nicht nur deutsche Zeichen, sondern auch zB bei der Überprüfung auf Telefonnummer oder PLZ muss das eigentlich immer angepasst werden. Deshalb kann es auch gar keine einheitliche Vorlage für ein Kontaktformular geben sondern immer nur Startpunkte.
Mit Zitat antworten
  #9 (permalink)  
Alt 16.05.2019, 11:58
Benutzerbild von protonenbeschleuniger
Verbesserer
XHTMLforum-Kenner
 
Registriert seit: 06.09.2007
Beiträge: 4.977
protonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblickprotonenbeschleuniger ist ein wunderbarer Anblick
Standard

und man sollte sich evtl. auch über "overblocking" Gedanken machen. Also wie wichtig ist es, dass das Formular möglichst einfach funktioniert und niemand abschreckt (was Captchas immer tun)
Mit Zitat antworten
Sponsored Links
  #10 (permalink)  
Alt 20.05.2019, 13:25
Erfahrener Benutzer
XHTMLforum-Kenner
 
Registriert seit: 30.01.2014
Beiträge: 2.247
cloned ist ein wunderbarer Anblickcloned ist ein wunderbarer Anblickcloned ist ein wunderbarer Anblickcloned ist ein wunderbarer Anblickcloned ist ein wunderbarer Anblickcloned ist ein wunderbarer Anblickcloned ist ein wunderbarer Anblick
Standard

Dafür eignet sich dann recaptcha v3, da gibt es dann nämlich kein captcha mehr für den User zum ausfüllen. Das arbeitet unsichtbar im Hintergrund.
Mit Zitat antworten
Sponsored Links
Antwort

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
CSS falsche Hover Fläche für Kontaktformular Trigant CSS 6 14.10.2013 19:06
Kontaktformular Eingabefelder linksbündig ewaldo CSS 4 22.05.2012 23:37
Kontaktformular Fehler ... root-2k (X)HTML 3 22.11.2010 21:05
Kontaktformular von fox - Anpassungen Sand10 Serveradministration und serverseitige Scripte 4 08.07.2010 13:26
PHP Kontaktformular und verschiedene Browser HTMLLernender (X)HTML 1 22.01.2010 12:08


Alle Zeitangaben in WEZ +2. Es ist jetzt 21:46 Uhr.