(HTML) Anführungsstriche werden nicht im Input-box angezeigt
klaus
- php
Hallo,
ich hab ein seltsames Phänomen, dass erst nach dem Serverwechsel (neuer Apache, neues PHP, ...) auftritt.
In einem Input-Feld gebe ich einen beliebigen Text, mit deutschen Umlauten aber auch mit deutschen doppelten Anführungsstrichen (") ein.
Der Inhalt wird in einer Tabelle gespeichert.
Wenn ich mir den Inhalt einfach anzeigen lasse, wird der Wert auch korrekt wieder ausgegeben. Lasse ich den Wert allerdings in einem Input-Feld wieder anzeigen wird der Text ab dem ersten Anführungszeichen abgeschnitten:
$abfrage = "select * from essenstamm where artikelnummer = 'A8124'";
$erg = mysql_db_query($dbname,$abfrage,$verbindung);
$row = mysql_fetch_array($erg);
extract($row);
echo "Essen: $artikelnummer $bezeichnung<hr>";
?>
<input type="text" name="bezeichnung" size="50" value="<?=$bezeichnung;?>">
<?
Ergibt als Ausgabe A8124 Rinderbraten "Hausmannsart"
Aber im Inputfeld steht nur Rinderbraten.
Hat da jemand eine Idee?
Klaus
echo "Essen: $artikelnummer $bezeichnung<hr>";
?>
<input type="text" name="bezeichnung" size="50" value="<?=$bezeichnung;?>">
<?Ergibt als Ausgabe A8124 Rinderbraten "Hausmannsart"
Aber im Inputfeld steht nur Rinderbraten.
Wirf mal einen Blick in den Quellcode, dort wirst du vermutlich folgendes finden:
<input type="text" name="bezeichnung" size="50" value="Rinderbraten "Hausmannsart"">
Denk' mal drüber nach.
Davon unabhängig gibt man Texte grundsätzlich abgesichert durch htmlspecialchars() oder htmlentities() aus.
Wirf mal einen Blick in den Quellcode, dort wirst du vermutlich folgendes finden:
<input type="text" name="bezeichnung" size="50" value="Rinderbraten "Hausmannsart"">
Denk' mal drüber nach.
Davon unabhängig gibt man Texte grundsätzlich abgesichert durch htmlspecialchars() oder htmlentities() aus.
Hmm, da wirst Du wohl recht behalten. Und htmlspecialchars() ist sicherlich dann auch die Lösung. Komisch nur, dass ich mir bisher nie Gedanken drüber machen musste.
Aber was soll's. Ich werd den Sourcecode an den entsprechenden Stellen anpassen und gut ist.
Vielen Dank für die freundliche und schnelle Auskunft.
Klaus
Hi,
Komisch nur, dass ich mir bisher nie Gedanken drüber machen musste.
doch, musstest Du. Komisch ist allenfalls, dass Du's nicht gemacht hast - ich möchte gar nicht wissen, wie viele Sicherheitslücken Deine Scripts deswegen haben. Merke Dir und erinnere Dich *immer* daran:
Wenn Du einen Wert - egal welchen - in einen Kontext bringst - egal in welchen - so ***MUSST*** Du den Wert kontextspezifisch maskieren.
Cheatah