phpbar.de logo

Mailinglisten-Archive

[php] RE: Re: [php] "" Ausgabe in <input boxen>

[php] RE: Re: [php] "" Ausgabe in <input boxen>

=?iso-8859-1?Q?Bj=F6rn_Schotte?= bjoern_(at)_baer.main.de
Thu, 29 Jun 2000 15:53:10 +0200


* 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 &quot;. Der
Browser versteht wiederum das &quot; 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