Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > de.comp.lang.php > #4472 > unrolled thread
| Started by | Andreas Borutta <borumat@gmx.de> |
|---|---|
| First post | 2019-04-14 10:51 +0200 |
| Last post | 2019-04-17 12:31 +0200 |
| Articles | 9 — 2 participants |
Back to article view | Back to de.comp.lang.php
Kontaktformular mit logischem ODER für zwei Felder - eines davon muss ausgefuellt werden Andreas Borutta <borumat@gmx.de> - 2019-04-14 10:51 +0200
Re: Kontaktformular mit logischem ODER für zwei Felder - eines davon muss ausgefuellt werden Arno Welzel <usenet@arnowelzel.de> - 2019-04-14 18:39 +0200
Re: Kontaktformular mit logischem ODER für zwei Felder - eines davon muss ausgefuellt werden Andreas Borutta <borumat@gmx.de> - 2019-04-15 07:16 +0200
Re: Kontaktformular mit logischem ODER für zwei Felder - eines davon muss ausgefuellt werden Andreas Borutta <borumat@gmx.de> - 2019-04-15 08:51 +0200
Re: Kontaktformular mit logischem ODER für zwei Felder - eines davon muss ausgefuellt werden Arno Welzel <usenet@arnowelzel.de> - 2019-04-15 11:26 +0200
Re: Kontaktformular mit logischem ODER für zwei Felder - eines davon muss ausgefuellt werden Arno Welzel <usenet@arnowelzel.de> - 2019-04-15 11:21 +0200
Re: Kontaktformular mit logischem ODER für zwei Felder - eines davon muss ausgefuellt werden Andreas Borutta <borumat@gmx.de> - 2019-04-17 07:57 +0200
Re: Kontaktformular mit logischem ODER für zwei Felder - eines davon muss ausgefuellt werden Arno Welzel <usenet@arnowelzel.de> - 2019-04-17 08:23 +0200
Re: Kontaktformular mit logischem ODER für zwei Felder - eines davon muss ausgefuellt werden Andreas Borutta <borumat@gmx.de> - 2019-04-17 12:31 +0200
| From | Andreas Borutta <borumat@gmx.de> |
|---|---|
| Date | 2019-04-14 10:51 +0200 |
| Subject | Kontaktformular mit logischem ODER für zwei Felder - eines davon muss ausgefuellt werden |
| Message-ID | <1ukqrphao61n1.dlg@borumat.de> |
Moin. Leider beherrsche ich keine Programmiersprache und behelfe mir daher mit der Anpassung von PHP-Skripten. Das funktioniert leidlich. Nun möchte ich das erste Mal ein Kontaktformular bereitstellen. Weil es mich selber als Nutzer immer gestört hat, dass viele Anbieter endlos viel als "required" verlangen, möchte ich das so minimal wie möglich halten. Daher nur 3 Felder: Mail Telefon Text Der einfache Quellcode für HTML5: <form method="post" id="kontakt-formular"> <label for="email">Mail</label> <input name="email" id="email" type="email" required /> <label for="tel">Telefon</label> <input name="tel" id="tel" type="tel" /> <label for="text">Text</label> <textarea name="text" id="text" required ></textarea> <button type="submit">Senden</button> </form> Inhalt in "Text" soll notwendig sein, weil eine leere Nachricht sinnlos ist. Bei "Mail" und "Telefon", soll der Absender die Wahl haben, ob er nur eine der beiden Kontaktmöglichkeiten nennt oder beide. Könnt ihr mir ein Skript für diesen einfachen Usecase empfehlen? Ideal wäre es, wenn es gleich ein dazu passendes clientseitiges Validierung-JS gäbe, als Ergänzung zur serverseitigen Validierung (die natürlich maßgeblich sein soll). Falls ihr zu der Aufgabe ein gut verständliches Tutorial kennt, freue ich mich über einen Hinweis. Darüber hinaus: Welchen Techniken zur Rückgabe einer Meldung bei Invalidität oder Fehlen eines notwendigen Feldes sind "state of the art" bei HTML5? Einen direkten Zugriff auf die von HTML5 "selber" erzeugten Meldungstexten beim Hovern hat man meines Wissens nicht. Danke. Andreas -- http://fahrradzukunft.de
[toc] | [next] | [standalone]
| From | Arno Welzel <usenet@arnowelzel.de> |
|---|---|
| Date | 2019-04-14 18:39 +0200 |
| Message-ID | <ghh62sFkplsU1@mid.individual.net> |
| In reply to | #4472 |
Andreas Borutta: [...] > Bei "Mail" und "Telefon", soll der Absender die Wahl haben, ob er nur > eine der beiden Kontaktmöglichkeiten nennt oder beide. > > Könnt ihr mir ein Skript für diesen einfachen Usecase empfehlen? Es gibt nicht "das Skript", was man da empfehlen kann. Man muss es halt bauen, das die Bedingungen entsprechend geprüft werden. Für die Serverseite muss das der machen, das PHP-Script dazu macht. > Ideal wäre es, wenn es gleich ein dazu passendes clientseitiges > Validierung-JS gäbe, als Ergänzung zur serverseitigen Validierung (die > natürlich maßgeblich sein soll). > > Falls ihr zu der Aufgabe ein gut verständliches Tutorial kennt, freue > ich mich über einen Hinweis. Das "Tutorial" wäre "lerne JavaScript". Sowas kann man nicht einfach per "Tutorial" machen. Man muss schon halbwegs verstehen, was man tut, sonst baut man sich nur irgendein Script, was am Ende potentiell alle möglichen ausnutzbaren Fehler und Lücken enthält. Aber wenn Du es trotzdem versuchen willst: <https://www.mediaevent.de/javascript/onreset-onsubmit.html> > Darüber hinaus: > Welchen Techniken zur Rückgabe einer Meldung bei Invalidität oder > Fehlen eines notwendigen Feldes sind "state of the art" bei HTML5? > Einen direkten Zugriff auf die von HTML5 "selber" erzeugten > Meldungstexten beim Hovern hat man meines Wissens nicht. Korrekt. Deswegen macht man das nach wie vor mit selber erzeugten Fehlertexten - z.B. neben oder über den betroffenen Feldern, die dann ggf. auch einen anderen Style für "Feld ist fehlerhaft" bekommen. -- Arno Welzel https://arnowelzel.de
[toc] | [prev] | [next] | [standalone]
| From | Andreas Borutta <borumat@gmx.de> |
|---|---|
| Date | 2019-04-15 07:16 +0200 |
| Message-ID | <1dnkjuii361mo$.dlg@borumat.de> |
| In reply to | #4473 |
Arno Welzel: > Andreas Borutta: > > [...] >> Bei "Mail" und "Telefon", soll der Absender die Wahl haben, ob er nur >> eine der beiden Kontaktmöglichkeiten nennt oder beide. >> >> Könnt ihr mir ein Skript für diesen einfachen Usecase empfehlen? > > Es gibt nicht "das Skript", was man da empfehlen kann. Man muss es halt > bauen, das die Bedingungen entsprechend geprüft werden. Ich hatte gehofft, dass für Standardaufgaben - ein minimales Kontaktformular ist eine davon, eine minimale Navigationslinkliste mit Kennzeichnung des jeweils aktuellen Links wäre eine andere - eine Handvoll etablierte Skripte existieren, die besonders häufig verwendet werden. Wenn die "ODER-Logik" kompliziert umzusetzen ist, werde ich das aufgeben. > Für die Serverseite muss das der machen, das PHP-Script dazu macht. > >> Ideal wäre es, wenn es gleich ein dazu passendes clientseitiges >> Validierung-JS gäbe, als Ergänzung zur serverseitigen Validierung (die >> natürlich maßgeblich sein soll). >> >> Falls ihr zu der Aufgabe ein gut verständliches Tutorial kennt, freue >> ich mich über einen Hinweis. > > Das "Tutorial" wäre "lerne JavaScript". Sowas kann man nicht einfach per > "Tutorial" machen. Man muss schon halbwegs verstehen, was man tut, sonst > baut man sich nur irgendein Script, was am Ende potentiell alle > möglichen ausnutzbaren Fehler und Lücken enthält. Auch hier hatte ich gehofft, dass es für Standardaufgaben ausgereifte, etablierte Skripte gibt. >> Darüber hinaus: >> Welchen Techniken zur Rückgabe einer Meldung bei Invalidität oder >> Fehlen eines notwendigen Feldes sind "state of the art" bei HTML5? >> Einen direkten Zugriff auf die von HTML5 "selber" erzeugten >> Meldungstexten beim Hovern hat man meines Wissens nicht. > > Korrekt. Deswegen macht man das nach wie vor mit selber erzeugten > Fehlertexten Kann man denn durch JS den Hover-Standardfehlertext von HTML5 überschreiben? Sonst hätte man ja den Fehlerhinweis doppelt. Andreas -- http://fahrradzukunft.de
[toc] | [prev] | [next] | [standalone]
| From | Andreas Borutta <borumat@gmx.de> |
|---|---|
| Date | 2019-04-15 08:51 +0200 |
| Message-ID | <1wxeptiunhiyh$.dlg@borumat.de> |
| In reply to | #4474 |
Andreas Borutta: >>> Bei "Mail" und "Telefon", soll der Absender die Wahl haben, ob er nur >>> eine der beiden Kontaktmöglichkeiten nennt oder beide. >>> >>> Könnt ihr mir ein Skript für diesen einfachen Usecase empfehlen? >> >> Es gibt nicht "das Skript", was man da empfehlen kann. Man muss es halt >> bauen, das die Bedingungen entsprechend geprüft werden. > > Ich hatte gehofft, dass für Standardaufgaben - ein minimales > Kontaktformular ist eine davon, eine minimale Navigationslinkliste mit > Kennzeichnung des jeweils aktuellen Links wäre eine andere - eine > Handvoll etablierte Skripte existieren, die besonders häufig verwendet > werden. Ich habe noch dieses Skript von Stefan Münz von 2013 gefunden: http://webkompetenz.wikidot.com/html-handbuch:einfacher-formmailer-php Ob es heutigen Sicherheitsanforderungen genügt, kann ich nicht beurteilen. Gewundert habe ich mich, das man nirgendwo die Zugangsdaten zum Versenden von Mails eintragen muss. Davon unabhängig: Ist es bei Kontaktformularen üblich, dass im From der vom Server versendeten Mail der Wert aus dem Feld "Mail" (also der Mailadresse des Nutzers des Formulars) steht? Andreas -- http://fahrradzukunft.de
[toc] | [prev] | [next] | [standalone]
| From | Arno Welzel <usenet@arnowelzel.de> |
|---|---|
| Date | 2019-04-15 11:26 +0200 |
| Message-ID | <ghj133F2do9U1@mid.individual.net> |
| In reply to | #4475 |
On 15.04.19 08:51, Andreas Borutta wrote: [...] > Gewundert habe ich mich, das man nirgendwo die Zugangsdaten zum > Versenden von Mails eintragen muss. Wenn das Script auf dem selben Server läuft, der auch für den Empfang dieser E-Mails zuständig ist, kann das durchaus gehen. E-Mails von localhost werden in der Regel ohne Authentifizierung akzeptiert. > Davon unabhängig: > Ist es bei Kontaktformularen üblich, dass im From der vom Server > versendeten Mail der Wert aus dem Feld "Mail" (also der Mailadresse > des Nutzers des Formulars) steht? Ob es üblich ist - keine Ahnung. Es ist aber sinnvoll wenn man dem Anfragenden direkt per E-Mail antworten können will. Alternativ als From eine Adresse des Servers eintragen und dafür Reply-To auf die Adresse aus dem Formular setzen. -- Arno Welzel https://arnowelzel.de
[toc] | [prev] | [next] | [standalone]
| From | Arno Welzel <usenet@arnowelzel.de> |
|---|---|
| Date | 2019-04-15 11:21 +0200 |
| Message-ID | <ghj0pnF2btdU1@mid.individual.net> |
| In reply to | #4474 |
On 15.04.19 07:16, Andreas Borutta wrote:
> Arno Welzel:
>
>> Andreas Borutta:
>>
>> [...]
>>> Bei "Mail" und "Telefon", soll der Absender die Wahl haben, ob er nur
>>> eine der beiden Kontaktmöglichkeiten nennt oder beide.
>>>
>>> Könnt ihr mir ein Skript für diesen einfachen Usecase empfehlen?
>>
>> Es gibt nicht "das Skript", was man da empfehlen kann. Man muss es halt
>> bauen, das die Bedingungen entsprechend geprüft werden.
>
> Ich hatte gehofft, dass für Standardaufgaben - ein minimales
> Kontaktformular ist eine davon, eine minimale Navigationslinkliste mit
> Kennzeichnung des jeweils aktuellen Links wäre eine andere - eine
> Handvoll etablierte Skripte existieren, die besonders häufig verwendet
> werden.
Natürlich findet man zahlreiche Lösungen wenn man im Web nach "PHP form
email" sucht.
Das Problem mit solchen Lösungen - es hilft Dir nicht, wenn Du irgendein
Script von irgendwoher nimmst und ohne weitergehendes Wissen zu PHP für
deine Anforderungen zurechtbastelst. Dabei kannst Du potentiell
beliebige Fehler einbauen und das willst Du vermutlich nicht.
> Wenn die "ODER-Logik" kompliziert umzusetzen ist, werde ich das
> aufgeben.
Ist sie nicht.
if (empy($_POST['email']) && empy($_POST['tel'])) {
// Hier Fehlerbehandlung wenn E-Mail und Telefon fehlen
} else {
// Weitere Pruefungen und ggf. Formular absenden
}
Siehe auch <https://www.php.net/manual/de/function.empty.php>.
Aber ganz ehrlich: was hilft Dir das jetzt? Eigentlich bräuchtest Du ein
fertiges und getestestes PHP-Script für deinen Zweck.
[...]
>>> Darüber hinaus:
>>> Welchen Techniken zur Rückgabe einer Meldung bei Invalidität oder
>>> Fehlen eines notwendigen Feldes sind "state of the art" bei HTML5?
>>> Einen direkten Zugriff auf die von HTML5 "selber" erzeugten
>>> Meldungstexten beim Hovern hat man meines Wissens nicht.
>>
>> Korrekt. Deswegen macht man das nach wie vor mit selber erzeugten
>> Fehlertexten
>
> Kann man denn durch JS den Hover-Standardfehlertext von HTML5
> überschreiben? Sonst hätte man ja den Fehlerhinweis doppelt.
Es geht eventuell mit setCustomValidity() - aber dafür muss man auch die
Validierung selber machen und kann dann *danach* damit die Fehlermeldung
setzen:
<https://developer.mozilla.org/en-US/docs/Web/API/HTMLSelectElement/setCustomValidity>
--
Arno Welzel
https://arnowelzel.de
[toc] | [prev] | [next] | [standalone]
| From | Andreas Borutta <borumat@gmx.de> |
|---|---|
| Date | 2019-04-17 07:57 +0200 |
| Message-ID | <9bqiphqaxsdj.dlg@borumat.de> |
| In reply to | #4476 |
Arno Welzel: > On 15.04.19 07:16, Andreas Borutta wrote: > >> Arno Welzel: >> >>> Andreas Borutta: >>> >>> [...] >>>> Bei "Mail" und "Telefon", soll der Absender die Wahl haben, ob er nur >>>> eine der beiden Kontaktmöglichkeiten nennt oder beide. >>>> >>>> Könnt ihr mir ein Skript für diesen einfachen Usecase empfehlen? >>> >>> Es gibt nicht "das Skript", was man da empfehlen kann. Man muss es halt >>> bauen, das die Bedingungen entsprechend geprüft werden. >> >> Ich hatte gehofft, dass für Standardaufgaben - ein minimales >> Kontaktformular ist eine davon, eine minimale Navigationslinkliste mit >> Kennzeichnung des jeweils aktuellen Links wäre eine andere - eine >> Handvoll etablierte Skripte existieren, die besonders häufig verwendet >> werden. > > Natürlich findet man zahlreiche Lösungen wenn man im Web nach "PHP form > email" sucht. > > Das Problem mit solchen Lösungen - es hilft Dir nicht, wenn Du irgendein > Script von irgendwoher nimmst und ohne weitergehendes Wissen zu PHP für > deine Anforderungen zurechtbastelst. Dabei kannst Du potentiell > beliebige Fehler einbauen und das willst Du vermutlich nicht. Ich habe jetzt beim Webspaceprovider angeregt, ob er vielleicht für seine Kunden ein vorbereitetes Skript bereitstellen möchte. Insbesondere für die, die als Empfangsadresse der Daten aus dem Formular eine Adresse auf dem Mailserver des Providers nutzen. * mit Captcha (Vermeidung von Spam ist ja auch in seinem Interesse) * Option "[ ]Nachricht als Kopie an mich senden" * Option Rückgabeseite beim Eintreffen von invaliden Feldinhalten (alten Inhalt des Feldes zurückgeben und nicht löschen) * Option Rückgabeseite beim Eintreffen von fehlenden Feldinhalten * Option Rückgabeseite für erfolgreich zugestellte Nachricht * Alles nach "Stand der Technik", also in sicherer Form ausgeführt. Mal gucken, ob sowas finde. Habe ich noch was für ein minimales Kontaktformular vergessen? Meine ursprüngliches Ziel der ODER-Logik gebe ich auf. Ich beschränke mich auf den einfachsten Fall eines Kontaktformulars. Auch eine ergänzende clientseitige Validierung gebe ich als Ziel auf. Die Standards von HTML5 müssen reichen. Alles andere ist unrealistisch für mich. Andreas -- http://fahrradzukunft.de
[toc] | [prev] | [next] | [standalone]
| From | Arno Welzel <usenet@arnowelzel.de> |
|---|---|
| Date | 2019-04-17 08:23 +0200 |
| Message-ID | <ghnv2qF4pclU1@mid.individual.net> |
| In reply to | #4478 |
Andreas Borutta: [...] > Meine ursprüngliches Ziel der ODER-Logik gebe ich auf. > Ich beschränke mich auf den einfachsten Fall eines Kontaktformulars. > > Auch eine ergänzende clientseitige Validierung gebe ich als Ziel auf. > Die Standards von HTML5 müssen reichen. > Alles andere ist unrealistisch für mich. Ja, wenn Du niemanden hast, der das für Dich programmiert, ist das vermutlich die sinnvollste Entscheidung. Die Anforderungen sind aber technisch nicht sehr schwer umzusetzen - aber man muss halt PHP und JavaScript beherrschen. Vielleicht kann ich ja mal eine "Standardlösung" entwickeln und zur allgemeinen Verwendung bereitstellen. -- Arno Welzel https://arnowelzel.de
[toc] | [prev] | [next] | [standalone]
| From | Andreas Borutta <borumat@gmx.de> |
|---|---|
| Date | 2019-04-17 12:31 +0200 |
| Message-ID | <17gjqupxj5ofv$.dlg@borumat.de> |
| In reply to | #4479 |
Arno Welzel: > Andreas Borutta: > > [...] >> Meine ursprüngliches Ziel der ODER-Logik gebe ich auf. >> Ich beschränke mich auf den einfachsten Fall eines Kontaktformulars. >> >> Auch eine ergänzende clientseitige Validierung gebe ich als Ziel auf. >> Die Standards von HTML5 müssen reichen. >> Alles andere ist unrealistisch für mich. > > Ja, wenn Du niemanden hast, der das für Dich programmiert, ist das > vermutlich die sinnvollste Entscheidung. Die Anforderungen sind aber > technisch nicht sehr schwer umzusetzen - aber man muss halt PHP und > JavaScript beherrschen. > > Vielleicht kann ich ja mal eine "Standardlösung" entwickeln und zur > allgemeinen Verwendung bereitstellen. Ich würde mich darüber natürlich freuen. Aber bitte tue das nur, wenn Du denkst, dass es für etliche andere Interessenten ebenfalls nützlich ist. Bei Self-HTML fand ich noch einen Text, wo eine freie Bibliothek "Swift Mailer" verwendet wird: https://wiki.selfhtml.org/wiki/PHP/Tutorials/Formmailer-Advanced Ich kann die Qualität jedoch nicht beurteilen. Andreas -- http://fahrradzukunft.de
[toc] | [prev] | [standalone]
Back to top | Article view | de.comp.lang.php
csiph-web