Sven Rautenberg: PHP-Session-ID verfälscht Textfeldinhalt

Beitrag lesen

Moin!

ich habe folgendes Problem. Habe ein kleines Formular mit einem Textfeld (TEXTAREA). In diesesm Textfeld kommt auch HTML-Code vor, somit auch Hyperlinks. Wenn ich das Formular jetzt abschicke, wird automatisch auch an diese Links die PHP-Session-ID angehängt.

Bist du dir sicher, dass dies beim Abschicken passiert?

PHP verfügt über die Möglichkeit, alle Links, die auf den lokalen Server zeigen, mit einer Session-ID als Parameter zu versehen. Dies passiert, wenn PHP keinen Session-Cookie empfangen hat. Insofern würde ich erstmal davon ausgehen, dass das Formular ordnungsgemäß empfangen wurde und nur bei der erneuten Ausgabe die ID angehängt bekommt.

Wie kann ich das unterdrücken / verhindern? (Provider: Puretec)

Mache dir klar, wo die Session-ID rankommt.

Bei normalen Links im Dokument ist dieses Verhalten absolut in Ordnung.

Wenn du die IDs auch in deine Textarea bekommst, wenn du die Eingabe erneut bearbeiten willst, dann befüllst du deine Textarea falsch. Gib testweise mal "</textarea>" ganz als erstes ein und bearbeite den gespeicherten Text dann wieder. Solltest du nur noch eine leere Textarea (und den erwünschten Inhalt darunter) vorfinden: htmlspecialchars() verwenden. In einer Textarea dürfen keine HTML-Tags stehen. Deshalb sind alle HTML-Sonderzeichen wie <, > und & in ihre Entities zu wandeln.

PHP wird vermutlich HTML-Tags sehen und eine Session-ID dranhängen, weil du nicht in Entities gewandelt hast.

- Sven Rautenberg

--
ss:) zu:) ls:[ fo:} de:] va:) ch:] sh:) n4:# rl:| br:< js:| ie:( fl:( mo:|