Mailinglisten-Archive |
* Christoph M. Schönian wrote: > > Verwende htmlspecialchars() > Dank Björn - das war's!! Ist aber trotzdem merkwuerdig! Was ist denn merkwürdig? :-) Du hast z.B.: <?php $text = "bla \" blubb"; // ( = bla " blubb ) ?> <input type=text name="zupp" value="<?php print $text; ?>"> Wenn du dir den HTML-Code mit dem Browser anschaust, siehst du folgendes: <input type=text name="zupp" value="bla " blubb"> Jetzt hat der Browser ein Problem (bzw. weniger, weil er's ignoriert): er interpretiert den Wert des Arguments value im Tag vom ersten " bis zum zweiten ", also so, als ob hier nur stünde: <input type=text name="zupp" value="bla "> Deswegen mußt du schreiben: <input type=text name="zupp" value="<?php print htmlspecialchars($text); ?>"> Das wandelt dann (siehe Manual) bestimmte "Sonderzeichen" in die entsprechenden Entities um. Also " in ". Der Browser versteht wiederum das " und weiß "Aha, hier muß ein doppeltes Anführungszeichen hin". htmlentities() zu verwenden ist hierbei übrigens falsch, da htmlentities() -- wie bereits geschrieben -- alle "Sonderzeichen" in ihre entsprechenden Entities umwandelt. Du benötigst aber nur die Umwandlung von bestimmten, ganz wenigen "Sonderzeichen" in ihre Entities, damit das im Eingabefeld richtig angezeigt wird. Happy programming, Björn.
php::bar PHP Wiki - Listenarchive