Bla: mysql_real_escape_string in einer Schleife

Hallo!

Ein Quicky.
Ohne jetzt auf Details und Feinheiten einzugehen. Spricht irgendwas grundsätzlich dagegen?

  
    foreach($_POST as &$value)  
    {  
        $value = mb_substr($value, 0, 10);  
        $value = mysql_real_escape_string($value);  
    }  

Danke!

  1. Tach!

    Ohne jetzt auf Details und Feinheiten einzugehen. Spricht irgendwas grundsätzlich dagegen?

    Ja, dieselben Gründe wie gegen Magic Quotes. Das Ziel sollte sein, Daten für einen konkreten Zielkontext gerecht aufzubereiten, und nicht am Eingang alle Daten für nur einen einzelnen Kontext zu behandeln. Du wirst eventuell noch Daten aus anderen Quellen bekommen und musst dann immer wissen, welche Daten schon SQL-gerecht sind und welche noch nicht, und dabei keinen Wert vergessen. Oder du stellst fest, dass die Daten ungültig im Sinne der Geschäftslogik sind und musst den Nutzer eine weitere Runde im Affenformular drehen lassen. Dann ist es auch hinderlich, wenn die Daten SQL-gerecht umgeschrieben sind, aber eigentlich HTML-gerecht behandelt werden müssen. Also immer erst direkt vor dem Kontextwechsel die Daten entsprechend behandeln, und vorher mit Rohdaten arbeiten.

    dedlfix.

    1. Ja, dieselben Gründe wie gegen Magic Quotes. Das Ziel sollte sein, Daten für einen konkreten Zielkontext gerecht aufzubereiten, und nicht am Eingang alle Daten für nur einen einzelnen Kontext zu behandeln.

      Im konkreten Fall kommen die Daten von einigen frei beschreibbaren Textfeldern (jeweils max. 10 Zeichen) und werden nirgends wieder ausgegeben sondern sofort in der DB gespeichert. Ich sehe hier keine Notwendigkeit die einzelnen Variablen gesondert zu behandeln. Oder doch?

      1. Tach!

        Im konkreten Fall kommen die Daten von einigen frei beschreibbaren Textfeldern (jeweils max. 10 Zeichen) und werden nirgends wieder ausgegeben sondern sofort in der DB gespeichert. Ich sehe hier keine Notwendigkeit die einzelnen Variablen gesondert zu behandeln. Oder doch?

        In dem Fall, und wenn die ganze Angelegenheit überschaubar in einer Bildschirmseite oder weniger erledigt ist, dann kann man auch mal Gnade vor Recht ergehen lassen.

        dedlfix.

        1. In dem Fall, und wenn die ganze Angelegenheit überschaubar in einer Bildschirmseite oder weniger erledigt ist, dann kann man auch mal Gnade vor Recht ergehen lassen.

          Danke für die Abnahme ;-)