phpbar.de logo

Mailinglisten-Archive

[php] Problem mit Textfeldern

[php] Problem mit Textfeldern

Hans Theo Mislisch php_(at)_phpcenter.de
Thu, 8 Nov 2001 14:07:45 +0100


Hallo Michael, hallo Liste,

Michael Hinrichs schrieb am 08.11.2001 um 09:39 unter anderem:

>> > $name="FC K'lautern";

> a) echo "<input type=text name=bla value='".htmlentities($name)."'>";
> b) echo '<input type=text name=bla value="'.htmlentities($name).'">';
> c) echo "<input type=text name=bla value='".$name."'>";
> d) echo '<input type=text name=bla value="'.$name.'">';

> Hab mittlerweile (danke Ringo) die Lösung. Mein Problem war, daß mir
> nie jemand (*hüstel*) gesagt hat, wie man richtig programmiert.
> Ich hab bis jetzt immer a) oder c) genommen. allerdings funktionieren nur 
> b) und d).

> bei $name='FC K"lautern'; funktionieren a), b) und c). Ich werd mich also 
> an b) halten.

Na, da bin ich skeptisch. Ich habe auch mal angefangen,
in  Formularen Strings in Hochkomma zu setzen, aber mit
der  Zeit  kommt  man  durcheinander, das halte ich für
unsauber.
Vor  allem  wenn  man  auch mit MySQL arbeitet, was bei
Formularen   sehr   oft   vorkommt.  Wenn  denn  schon
Hochkommas  sein  müssen,  es  täten ja auch K´lautern,
anstatt K' lautern, dann muss man escapen. Also mit
addslashes()  und  stripslashes()  arbeiten. Das sollte
man grundsätzlich bei Eingabefeldern wie Name, Str. Ort
usw. sonst gibts früher oder später Probleme.

Und  Variablen  bzw. Eingabefelder werden grundsätzlich
ohne Umlaute oder sonstige Sonderzeichen benannt.

<?php
$club  = stripslashes($club);   // falls das überhaupt nötig ist.
?>
<input  type="text" name="club" value="<?php echo $echo ?>">

oder

<?php
echo "<input type=\"text\" name=\"club\" value=\"$club\">";
$club = addslashes($club);
..ab in die DB.
?>
 --

so kommts in die db oder so wirds weiter verarbeitet.

Ausgabe dann mit

$club  = stripslashes($club);   // falls das überhaupt nötig ist.
echo $club;

Natürlich  kann  man bei Bedarf Sonderzeichen auch noch
in  HTML umwandeln. Aber Hochkommas muss man für die DB
escapen  und  innerhalb  php  ist  es  ja  so,  dass in
Hochkommas   eingeschlossene   Strings  nicht  geparst
werden.

echo '$club';  // -> Anzeige: $club
echo "$club";  // -> Anzeige: FC Bayern München


Alles andere halte ich für Murks.  ;-)




Liebe Grüße

Theo



php::bar PHP Wiki   -   Listenarchive