Qudus
07-10-2005, 22:56
hi
Ich lese in einem PHP-Dokument den Wert von $_SERVER["QUERY_STRING"] aus. Den URL der Seite habe ich vorher selbst zusammengesetzt und in das href-Attribut eines a-links geschrieben. Dafür habe ich die & Zeichen per $amp; maskiert.
Das Problem ist nun, dass in dem String, den ich auslese, diese &s augenscheinlich drinstehen, mein Parser aber nichts davon mitbekommt.
strpos($qs, "&") gibt false zurück. Ich kann den String also einfach so behandeln, als stünde da ein einfaches &.
Das ist ja erstmal kein Problem, da ich eigentlich sowieso davon ausgehe, dass das & da nicht ankommen sollte. Wenn ich aber nun die Funktion htmlEntities darauf anwende, kommt ein doppelt maskierter String heraus. Den kann ich natürlich nicht verwenden.
Ich könnte jetzt einfach htmlEntities weglassen. Wenn sich jetzt aber PHP in einer anderen Version dann doch mal so verhält, wie ich das erwarten würde, ist mein HTML nicht mehr valid.
Ich benutze PHP 4.3.8 im Apache 2 unter Linux. Ist das ein bekannter Fehler? Mache ich irgendwas falsch? Gibt es eine Lösung für das Problem?
Qudus
Ich lese in einem PHP-Dokument den Wert von $_SERVER["QUERY_STRING"] aus. Den URL der Seite habe ich vorher selbst zusammengesetzt und in das href-Attribut eines a-links geschrieben. Dafür habe ich die & Zeichen per $amp; maskiert.
Das Problem ist nun, dass in dem String, den ich auslese, diese &s augenscheinlich drinstehen, mein Parser aber nichts davon mitbekommt.
strpos($qs, "&") gibt false zurück. Ich kann den String also einfach so behandeln, als stünde da ein einfaches &.
Das ist ja erstmal kein Problem, da ich eigentlich sowieso davon ausgehe, dass das & da nicht ankommen sollte. Wenn ich aber nun die Funktion htmlEntities darauf anwende, kommt ein doppelt maskierter String heraus. Den kann ich natürlich nicht verwenden.
Ich könnte jetzt einfach htmlEntities weglassen. Wenn sich jetzt aber PHP in einer anderen Version dann doch mal so verhält, wie ich das erwarten würde, ist mein HTML nicht mehr valid.
Ich benutze PHP 4.3.8 im Apache 2 unter Linux. Ist das ein bekannter Fehler? Mache ich irgendwas falsch? Gibt es eine Lösung für das Problem?
Qudus