Hallo,
»» Wozu soll das htmlspecialchars() gut sein, wenn Du mit Rohdaten arbeiten willst? htmlspecialchars() macht aus den Rohdaten html-fähige Werte, also solche, die im html-Kontext verwendet werden dürfen.
Ich versuche nur, die Seite so gut es geht gegen XSS o.ä. abzusichern, aber ich bin noch "nicht lang im Geschäft". ;)
die Absicht ist an sich richtig, nur das Werkzeug falsch. ;-)
das mit break; wurd ja schon geklärt. Ich dachte, dass das nur nötig ist, wenn mit Zahlen gearbeitet wird, denn 2 kann ja größer sein als 1, aber nicht Zwei größer Eins oder Paul größer Maik... oder nicht?
Erstens: Doch, auch für Strings gibt es eine größer/kleiner-Relation, dabei werden die Strings einfach Zeichen für Zeichen vergleichen. So gilt z.B.
"Wurm" > "Turm" weil der Code von 'W' größer ist als von 'T'
"sieben" < "siegen" weil der Code von 'b' kleiner ist als von 'g'
"Pilsen" > "Pils" weil die ersten vier Zeichen gleich sind, "Pilsen"
aber noch zwei Zeichen mehr hat.
Interessant ist das, wenn man glaubt, Zahlen zu vergleichen, in Wahrkeit aber mit Strings hantiert - beispielsweise beim Lesen von Eingabefeldern. Das führt zu unerwarteten Ergebnissen wie z.B.
"31" > "1000" weil das Zeichen '3' einen höheren Code hat als '1'
Allerdings ist das hier alles irrelevant, weil die switch-case-Anweisung ja in jedem Zweig nur auf Gleichheit prüft und nicht auf größer oder kleiner.
Zweitens: Die switch-case-Konstruktion arbeitet per Definition so, dass der erste zutreffende case-Zweig angesprungen wird, alle nachfolgenden aber der Reihe nach auch, wenn man nicht mit einem break aus der switch-Anweisung "ausbricht".
Wieder was dazugelernt.
Das ist immer gut.
So long,
Martin
Man gewöhnt sich an allem, sogar am Dativ.