|
||||
![]()
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> 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 11:50 Uhr) |
Sponsored Links |
|
|||
![]()
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. |
Sponsored Links |
|
|||
![]()
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? |
|
||||
![]()
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.
__________________
|
|
|||
![]()
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. |
|
||||
![]()
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. |
|
|||
![]() Zitat:
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. |
![]() |
Themen-Optionen | |
Ansicht | |
|
|
![]() |
||||
Thema | Autor | Forum | Antworten | Letzter Beitrag |
CSS falsche Hover Fläche für Kontaktformular | Trigant | CSS | 6 | 14.10.2013 18:06 |
Kontaktformular Eingabefelder linksbündig | ewaldo | CSS | 4 | 22.05.2012 22:37 |
Kontaktformular Fehler ... | root-2k | (X)HTML | 3 | 22.11.2010 20:05 |
Kontaktformular von fox - Anpassungen | Sand10 | Serveradministration und serverseitige Scripte | 4 | 08.07.2010 12:26 |
PHP Kontaktformular und verschiedene Browser | HTMLLernender | (X)HTML | 1 | 22.01.2010 11:08 |