input, Postleitzahlen
bearbeitet von Gunnar Bittersmann@@mathefritz
> ~~~php, bad
> echo "connected",$_GET["reg"];
> ~~~
Es ist 2017 (Prost Neujahr!) und man muss das immer noch immer wieder sagen:
**Fehler**{: style="color: red"}: Du darfst **niemals** Daten _unsicherer_{: style="font-style: inherit; text-decoration: line-through"} jeglicher Herkunft (z.B. Nutzereingaben) unbehandelt in HTML ausgeben. **Sicherheitslücke!!**
Wo `echo`{: .language-php} ist, sollte `htmlspecialchars()`{: .language-php} nicht weit sein.
> ~~~php
> echo "Eintrag $id hinzugefügt.
> ~~~
Es ist 2017 (Prost Neujahr!), da muss man keine Umlaute mehr verstümmeln.
> ~~~php, bad
> Name: <input type="text" name="firmenname" required /><br />
> Straße/Hnr: <input type="text" name="strassehn" required /><br />
> PLZ/ZIP: <input type="text" name="plz" pattern="\d+" required /><br />
> Stadt: <input type="text" name="stadt" required /><br />
> ggf Land: <input type="text" name="land" /><br />
> <input type="submit" name="Submit" value="Eintragen" />
> ~~~
Es ist 2017 (Prost Neujahr!) und man muss das immer noch immer wieder sagen:
**Fehler**{: style="color: red"}: Eingabefelder brauchen unbedingt eine **[Beschriftung (`label`)](https://wiki.selfhtml.org/wiki/Label#label)** Ohne `label` ist ein Formular **nicht bedienbar** – nicht von Nutzern, die auf assistive Technologien wie Screenreader angewiesen sind.
**Fehler**{: style="color: red"}: PLZ sind keine Zahlen. Es gibt Länder, da werden auch Buchstaben in PLZ verwendet. Dein Formular ist untauglich zur Angabe einer Adresse in bspw. Großbritannien. Weg mit dem `pattern`!
Für Buttons sollte man nicht `input`, sondern das das `button`-Element verwenden.
`br` hat (außer bei Gedichten/Liedtexten, Postadressen u.ä.) nichts in HTML zu suchen. Du kannst Label(!) und Eingabefeld in `p` wrappen. Oder `display: block` im Stylesheet.
PLZ und Ort (nicht „Stadt“) könnten auch nebeneinander in einer Zeile stehen.
> Der Code ist zusammengestückelt abgetipp aus
> "Christian Wenz, Tobias Hauser: PHP 7 und MySQL"
Es ist leider öfter so, dass es Autoren von Artikeln/Bücher über PHP oder JavaScript an Grundkenntnissen zu HTML mangelt.
LLAP 🖖
--
_„Wenn du eine weise Antwort verlangst, musst du vernünftig fragen.“_ —Johann Wolfgang von Goethe
input, Postleitzahlen
bearbeitet von Gunnar Bittersmann@@mathefritz
> ~~~php, bad
> echo "connected",$_GET["reg"];
> ~~~
Es ist 2017 (Prost Neujahr!) und man muss das immer noch immer wieder sagen:
**Fehler**{: style="color: red"}: Du darfst **niemals** Daten unsicherer Herkunft (z.B. Nutzereingaben) unbehandelt in HTML ausgeben. **Sicherheitslücke!!**
Wo `echo`{: .language-php} ist, sollte `htmlspecialchars()`{: .language-php} nicht weit sein.
> ~~~php
> echo "Eintrag $id hinzugefügt.
> ~~~
Es ist 2017 (Prost Neujahr!), da muss man keine Umlaute mehr verstümmeln.
> ~~~php, bad
> Name: <input type="text" name="firmenname" required /><br />
> Straße/Hnr: <input type="text" name="strassehn" required /><br />
> PLZ/ZIP: <input type="text" name="plz" pattern="\d+" required /><br />
> Stadt: <input type="text" name="stadt" required /><br />
> ggf Land: <input type="text" name="land" /><br />
> <input type="submit" name="Submit" value="Eintragen" />
> ~~~
Es ist 2017 (Prost Neujahr!) und man muss das immer noch immer wieder sagen:
**Fehler**{: style="color: red"}: Eingabefelder brauchen unbedingt eine **[Beschriftung (`label`)](https://wiki.selfhtml.org/wiki/Label#label)** Ohne `label` ist ein Formular **nicht bedienbar** – nicht von Nutzern, die auf assistive Technologien wie Screenreader angewiesen sind.
**Fehler**{: style="color: red"}: PLZ sind keine Zahlen. Es gibt Länder, da werden auch Buchstaben in PLZ verwendet. Dein Formular ist untauglich zur Angabe einer Adresse in bspw. Großbritannien. Weg mit dem `pattern`!
Für Buttons sollte man nicht `input`, sondern das das `button`-Element verwenden.
`br` hat (außer bei Gedichten/Liedtexten, Postadressen u.ä.) nichts in HTML zu suchen. Du kannst Label(!) und Eingabefeld in `p` wrappen. Oder `display: block` im Stylesheet.
PLZ und Ort (nicht „Stadt“) könnten auch nebeneinander in einer Zeile stehen.
> Der Code ist zusammengestückelt abgetipp aus
> "Christian Wenz, Tobias Hauser: PHP 7 und MySQL"
Es ist leider öfter so, dass es Autoren von Artikeln/Bücher über PHP oder JavaScript an Grundkenntnissen zu HTML mangelt.
LLAP 🖖
--
_„Wenn du eine weise Antwort verlangst, musst du vernünftig fragen.“_ —Johann Wolfgang von Goethe
input, Postleitzahlen
bearbeitet von Gunnar Bittersmann@@mathefritz
> ~~~php, bad
> echo "connected",$_GET["reg"];
> ~~~
Es ist 2017 (Prost Neujahr!) und man muss das immer noch immer wieder sagen:
**Fehler**{: style="color: red"}: Du darfst **niemals** Daten unsicherer Herkunft (z.B. Nutzereingaben) unbehandelt in HTML ausgeben. **Sicherheitslücke!!**
Wo `echo`{: .language-php} ist, sollte `htmlspecialchars()`{: .language-php} nicht weit sein.
> ~~~php
> echo "Eintrag $id hinzugefügt.
> ~~~
Es ist 2017 (Prost Neujahr!), da muss man keine Umlaute mehr verstümmeln.
> ~~~php, bad
> Name: <input type="text" name="firmenname" required /><br />
> Straße/Hnr: <input type="text" name="strassehn" required /><br />
> PLZ/ZIP: <input type="text" name="plz" pattern="\d+" required /><br />
> Stadt: <input type="text" name="stadt" required /><br />
> ggf Land: <input type="text" name="land" /><br />
> <input type="submit" name="Submit" value="Eintragen" />
> ~~~
Es ist 2017 (Prost Neujahr!) und man muss das immer noch immer wieder sagen:
**Fehler**{: style="color: red"}: Eingabefelder brauchen unbedingt eine **[Beschriftung (`label`)](https://wiki.selfhtml.org/wiki/Label#label)** Ohne `label` ist ein Formular **nicht bedienbar** – nicht von Nutzern, die auf assistive Technologien wie Screenreader angewiesen sind.
**Fehler**{: style="color: red"}: PLZ sind keine Zahlen. Es gibt Länder, da werden auch Buchstaben in PLZ verwendet. Dein Formular ist untauglich zur Angabe einer Adresse in bspw. Großbritannien. Weg mit dem `pattern`!
Für Buttons sollte man nicht `input`, sondern das das `button`-Element verwenden.
`br` hat (außer bei Gedichten/Liedtexten, Postadressen u.ä.) nichts in HTML zu suchen. Du kannst Label(!) und Eingabefeld in `p` wrappen. Oder `display: block` im Stylesheet.
> Der Code ist zusammengestückelt abgetipp aus
> "Christian Wenz, Tobias Hauser: PHP 7 und MySQL"
Es ist leider öfter so, dass es Autoren von Artikeln/Bücher über PHP oder JavaScript an Grundkenntnissen zu HTML mangelt.
LLAP 🖖
--
_„Wenn du eine weise Antwort verlangst, musst du vernünftig fragen.“_ —Johann Wolfgang von Goethe
input, Postleitzahlen
bearbeitet von Gunnar Bittersmann@@mathefritz
> ~~~php, bad
> echo "connected",$_GET["reg"];
> ~~~
Es ist 2017 (Prost Neujahr!) und man muss das immer noch immer wieder sagen:
**Fehler**{: style="color: red"}: Du darfst **niemals** Daten unsicherer Herkunft (z.B. Nutzereingaben) unbehandelt in HTML ausgeben. **Sicherheitslücke!!**
Wo `echo`{: .language-php} ist, sollte `htmlspecialchars()`{: .language-php} nicht weit sein.
> ~~~php
> echo "Eintrag $id hinzugefügt.
> ~~~
Es ist 2017 (Prost Neujahr!), da muss man keine Umlaute mehr verstümmeln.
> ~~~php, bad
> Name: <input type="text" name="firmenname" required /><br />
> Straße/Hnr: <input type="text" name="strassehn" required /><br />
> PLZ/ZIP: <input type="text" name="plz" pattern="\d+" required /><br />
> Stadt: <input type="text" name="stadt" required /><br />
> ggf Land: <input type="text" name="land" /><br />
> <input type="submit" name="Submit" value="Eintragen" />
> ~~~
Es ist 2017 (Prost Neujahr!) und man muss das immer noch immer wieder sagen:
**Fehler**{: style="color: red"}: Eingabefelder brauchen unbedingt eine **[Beschriftung (`label`)](https://wiki.selfhtml.org/wiki/Label#label)** Ohne `label` ist ein Formular **nicht bedienbar** – nicht von Nutzern, die auf assistive Technologien wie Screenreader angewiesen sind.
Für Buttons sollte man nicht `input`, sondern das das `button`-Element verwenden.
`br` hat (außer bei Gedichten/Liedtexten, Postadressen u.ä.) nichts in HTML zu suchen. Du kannst Label(!) und Eingabefeld in `p` wrappen. Oder `display: block` im Stylesheet.
> Der Code ist zusammengestückelt abgetipp aus
> "Christian Wenz, Tobias Hauser: PHP 7 und MySQL"
Es ist leider öfter so, dass es Autoren von Artikeln/Bücher über PHP oder JavaScript an Grundkenntnissen zu HTML mangelt.
LLAP 🖖
--
_„Wenn du eine weise Antwort verlangst, musst du vernünftig fragen.“_ —Johann Wolfgang von Goethe