Habe in Programm ein feld $vfstrasse mit Inhalt Hauptstrasse 24
habe nun ein Formular eingebaut mit anweisung:
echo "<input type=hidden name=vfstrasse value=$vfstrasse >";
!!! aber im empangenden Programm hat die variable $vfstrasse nur noch den wert <Hauptstrasse> ( die 24 fehlt )
Warum wird nicht der ganze Inhalt übertragen? was mache ich falsch?
Wirf mal einen Blick in den Quelltext, der beim Browser ankommt. Dort steht in etwa folgendes:
<input type=hidden name=vfstrasse value=Hauptstrasse 24 >
Falls Dir da noch nichts dran auffällt, überlege Dir mal, wie ein Browser HTML-Tags in Einzelteile zerlegt. Falls Dir das auch noch nichts hilft, überlege Dir, wozu es Anführungszeichen gibt und warum die in HTML eigentlich um _jedes_ nicht-numerische Argument gehören.
Und sobald Du dieses Problem beseitigt hast, überlege Dir gleich noch, was passiert, wenn ein böser Mensch kommt und statt
Hauptstraße 24
den Text
"><script type=text/javascript>while (true) alert("Hallo!");</script><"
eintippt (nb: es darf auch in jedem anderen Formularfeld sein). Informiere Dich in diesem Zusammenhang über die Funktion htmlentities().
Gruß,
soenk.e