Andreas Görtz: Neuer Artikel: Kontextwechsel erkennen und behandeln

Beitrag lesen

Hi,

Aber es kann ja nicht schaden, dem Problem, ungeachtet dessen, dass es in der Praxis nicht auftreten sollte, generell aus dem Weg zu gehen. Oder zumindest darauf aufmerksam zu machen, dass das Problem existieren kann.

Es gibt noch jede Menge anderer Probleme beim Programmieren zu beachten, auch solche, die mit dem Nichtbeachten von Wertebereichen zu tun haben. All diese Probleme kann man unmöglich aufzählen, weswegen ich mich nur auf solche beschränken will, die unmittelbar mit dem Kontextwechsel zu tun haben.

hier liegt wohl ein Missverständnis vor. Meine Antworten bezogen sich anfangs auf die Postings von einLaser und Christian, daher habe ich auch diese zitiert. Meiner Meinung nach musst du in dieser Hinsicht gar nichts an deinem Artikel ändern.

das Problem ist, dass eine Nutzereingabe durch intval() ggf. verändert wird. Wenn man auf eine fachliche Prüfung verzichten kann, bzw. es keine fachliche Prüfung gibt, z.B. im Falle von Suchanfragen, ist das eher hinderlich. Daher ist es meiner Meinung nach falsch, Nutzereingaben pauschal in Zahlenwerte zu konvertieren, auch dann, wenn man Zahlenwerte erwartet.
Dieses Argument scheint mir nicht nachvollziehbar. Suchanfragen in Zahlenfeldern werden kein sinnvolles Ergebnis bringen, wenn man sie mit Nicht-Zahlen-Strings vergleicht.

wenn man sie erst nach integer castet aber schon. Daher hatte ich das Beispiel "1foo" angebracht - sucht man nach diesem String in einem INTEGER-Feld, findet man nichts, was korrekt wäre. Wendet man erst intval() an, wird aus "1foo" eine 1 und plötzlich findet man etwas, was falsch wäre. Um diesen Fehler zu umgehen, müsste man hier also prüfen, ob tatsächlich eine Zahl übergeben wurde, was aber unnötig oder gar hinderlich ist, wenn wir bei dem Beispiel "Suchanfrage" bleiben und eine Suche z.B. über mehrere Felder, mit möglicherweise unterschiedlichen Datentypen, erlaubt ist.

Außerdem geht es hier nicht um pauschale Umwandlung für sämtliche Datentypen (wie man deinen Satz interpretieren kann), sondern um eine solche im Falle von Zahlen.

ja, ich hätte lieber schreiben sollen "Daher ist es meiner Meinung nach falsch, Nutzereingaben pauschal in Zahlenwerte zu konvertieren wenn man Zahlenwerte erwartet.". Suchanfragen müssen sich ja nicht zwangsläufig auf ein Feld/einen Datentyp beschränken.

Das hat aber alles mit deinen Kontextwechseln nichts zu tun, sondern war nur als allgemeiner Zusatz zu einLasers und Christians Anmerkung gedacht, eben _nicht_ pauschal nach int zu casten.

Gruß,
Andreas.