Seite 1 von 1

Strukturierte Fehlersuche utf-8, MySQL und PHP

Verfasst: 11.03.2010, 12:27
von Andreas I.
Hallo,
ich sitze hier vor einem paar-tausend Zeilen Monster aus PHP und Javascript. Verschiedenen Scripte, die sich gegenseitig includieren usw.

Das Teil ist nicht von mir und es ist echt grausam geschrieben. PHP-Funktionen, die get_blabla() heißen, liefern keinen Rückgabewert, sondern haben den Seiteneffekt, dass die gefragten Daten auf den Bildschirm ge-echot werden. Toll...
Und in dem Stil geht es weiter...
Datenübergabe grundsätzlich und projektweit nur per $_REQUEST[]...

Dahinter steht eine MySQL-Datenbank in utf-8.

Auf der fertig gerenderten Seite funktioniert nun an einigen Stellen die Darstellung von utf-8, an anderen Stellen jedoch nicht.

Wie sähe eine strukturiert abzuarbeitende Fehlerliste aus, um den Fehler zu entdecken?

Also eine vollständige Liste von Punkten, die ich jeweils mit Ja/Nein abhaken kann?

Verfasst:
von

Re: Strukturierte Fehlersuche utf-8, MySQL und PHP

Verfasst: 11.03.2010, 15:55
von 800XE
Andreas I. hat geschrieben:Wie sähe eine strukturiert abzuarbeitende Fehlerliste aus, um den Fehler zu entdecken?
Wenn ich total "Blind" bin

Datei_bakcup.sufix

und jetzt Stück für Stück CopyPast zurückholen und schauen ob alles OK oder eben jetzt "im neuen Stück" ein Fehler ist

Verfasst: 11.03.2010, 17:04
von Andreas I.
Es lag in diesem Fall an htmlentities(). Das hat mein Vorgänger an einigen Stellen eingesetzt, an anderen nicht.

So kommt Murks dabei raus:

Code: Alles auswählen

...
$select .=  "<option value='$item' >$inumber '" . htmlentities&#40;$item&#41; . "'</option>\n";
...
So geht funktioniert es:

Code: Alles auswählen

...
$select .=  "<option value='$item' >$inumber '" .$item . "'</option>\n";
...
Ist soweit ich das überblicke sicherheitstechnisch nicht so optimal, aber besser es funktioniert erstmal als das es ganz sicher überhaupt nicht funktioniert.

Keine Ahnung, wieso an einigen Stellen jetzt htmlentities() eingesetzt wurde, an anderen aber nicht...?

Verfasst: 11.03.2010, 17:19
von Mork vom Ork
Andreas I. hat geschrieben:So geht funktioniert es:

Code: Alles auswählen

...
$select .=  "<option value='$item' >$inumber '" .$item . "'</option>\n";
...
Ist soweit ich das überblicke sicherheitstechnisch nicht so optimal
Ersetze htmlentities() durch htmlspecialchars().

Verfasst: 16.03.2010, 09:25
von TonyBologni
Neu schreiben mit Zend Framework oder Cake PHP.
Ich mein's Ernst, erkläre dem Kunden, dass ihn das mittelfristig viel, viel, viel günstiger kommt!

LG, Tony