Peter: utf-8 / db / magic_quotes - verständnis problem

Beitrag lesen

magic_quotes sind zu vermeiden oder zu umgehen weil:

  • diese funktion nicht alle character escaped welche vielleicht escaped werden sollten (unvollständigkeit)

Das ist so nicht richtig. Magic_quotes_gpc() wendet die Funktion addslashes() an, und diese Funktion escaped halt gewisse Zeichen. Wenn man nur genau diese Zeichen berücksichtigen will, ist das voll ok, aber addslashes() ist eben nur eine recht unspezifische Funktion.

  • der programmierer keinen zugriff drauf hat welche character es escaped etc. (unsicherheit)

Doch, die Zeichen, die addslashes() entschärft, sind wohlbekannt.

  • es geeignetere funktionen gibt z.B. speziell auf mysql zugeschnittene mysql_real_escape_string (unzureichend)

Das ist der einzige Punkt. addslashes() berücksichtigt einfach nicht alle notwendigen Zeichen. Für ein Escaping, das nicht vollständig ist, ist sowas tödlich.

Denk dir einfach einen Eimer, der auf halber Höhe ein Loch hat. Zum Transport von Wasser ist er nicht vollkommen ungeeignet - solange du nur die Menge transportieren willst, die in den halben Eimer reingeht, klappt alles. Aber wehe, du tust mehr Wasser rein, ohne das Loch zu berücksichtigen.