Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > de.comp.lang.php > #4472 > unrolled thread

Kontaktformular mit logischem ODER für zwei Felder - eines davon muss ausgefuellt werden

Started byAndreas Borutta <borumat@gmx.de>
First post2019-04-14 10:51 +0200
Last post2019-04-17 12:31 +0200
Articles 9 — 2 participants

Back to article view | Back to de.comp.lang.php


Contents

  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

#4472 — Kontaktformular mit logischem ODER für zwei Felder - eines davon muss ausgefuellt werden

FromAndreas Borutta <borumat@gmx.de>
Date2019-04-14 10:51 +0200
SubjectKontaktformular 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]


#4473

FromArno Welzel <usenet@arnowelzel.de>
Date2019-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]


#4474

FromAndreas Borutta <borumat@gmx.de>
Date2019-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]


#4475

FromAndreas Borutta <borumat@gmx.de>
Date2019-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]


#4477

FromArno Welzel <usenet@arnowelzel.de>
Date2019-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]


#4476

FromArno Welzel <usenet@arnowelzel.de>
Date2019-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]


#4478

FromAndreas Borutta <borumat@gmx.de>
Date2019-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]


#4479

FromArno Welzel <usenet@arnowelzel.de>
Date2019-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]


#4480

FromAndreas Borutta <borumat@gmx.de>
Date2019-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