Anführungszeichen in INPUT VALUE

modstyle

Mitglied
Hi!

In einem Skript habe ich eine Bearbeiten-Funktion für Datensätze programmiert, dabei werden die Daten aus der Datenbank ausgelesen und in einem Formular angezeigt, so dass der User diese bearbeiten kann.

Das Problem dabei ist, dass wenn ich beim Titel Anführungszeichen verwende, der Teil, der in Anführungszeichen steht in der Text-Box nicht angezeigt wird; als Beispiel:
Quelltext: <input ... value="Titel und "Anfürhrungsstriche"" />
Ausgabe in der Textbox: Titel und

Was muss ich mit den Anführungszeichen tun, damit sie den äußeren Anführungszeichen nicht in die Quere kommen? Die value-Werte kommen aus einer Variablen und werden mit "echo" ausgegeben.

Danke für die Hilfe!
 
Hallo,

du musst diese Anführungszeichen mit \ quoten
Mit dem Backslash wird die Bedeutung des Sonderzeichens aufgehoben.
z. B.
PHP:
<input ... value="Titel \"blabla\"">
LG eiisa
 
du musst diese Anführungszeichen mit \ quoten
Mit dem Backslash wird die Bedeutung des Sonderzeichens aufgehoben.
Das ist falsch. Denn in HTML gibt es kein Escape-Zeichen. Sie werden stattdessen durch Zeichenreferenzen ersetzt. Im Falle der doppelten Anführungsstricht (U+0022) wäre die Entity-Zeichenreferenz &quot; oder die numerische Zeichenreferenz &?#34; (dezimal) beziehungsweise " (hexadezimal) möglich.
Für die automatische Formatierung HTML-Syntax-eigener Zeichen kann die htmlspecialchars()-Funktion genutzt werden.
 
Hi!

Danke für den Tipp mit den htmlspecialchars(). Hätte ich eigentlich auch selbst drauf kommen können aber wie das nun mal ist, steht man manchmal wie der Ochs vorm Berg oder einfach nur auf dem Schlauch ;).

Das mit dem quoten ist tatsächlich falsch, da das \ nur ein normales Zeichen ist und keine Sonderbehandlung erfährt, d.h. man würde in deinem Beispiel in der Text-Box sowies wie [Titel \] stehen haben, da das erste Anführungs-Zeichen als Abschluss von VALUE angesehen wird.
 
Kann mir bitte jemand mit meinem Problem helfen?

Code:
$name = "My name's Peter";
echo "<input type=text id='name' name='name' size=65 value='".$name."'> ";

Die Textbox cuttet meinen String nach dem ' <- Hochkomma.
 
PHP:
$name = "My name's Peter";
echo "<input type=text id='name' name='name' size=65 value='".htmlspecialchars($name, ENT_QUOTES)."'> ";
 
Zurück