[PHP] Problem mit beim speichern

casbar

Cadet 4th Year
Registriert
Dez. 2004
Beiträge
115
Hallöchen!
Habe ein Script was Produkte in eine Datenbank speichert...
Wenn der Produkt Name aber ein ' enthält, wird es zwar richtig angezeigt aber wenn ich es bearbeite wird im Input Feld nur der erste Teil vor dem ' angezeigt...

Habs schon mit htmlspecialchars() versucht, hat aber nicht geklappt...
Auch wenn ich die ' mit \ maskieren lasse wird dann nur bis zum \ angezeigt...

Was soll ich machen?? Jemand ne Idee??

casbar
 
Zuletzt bearbeitet:
Hi,

vielleicht mal nur so als Ansatz, ich hatte eigentlich das selbe Problem nur mit ", ich hatte dann eine Funktion geschrieben, die den String aus dem Textfeld nach diesem Zeichen durchsucht und durch
Code:
"
ersetzt hat. Das hat dann bei uns ganz wunderbar funktioniert.

MfG
 
Hi,

wie sieht denn die Value-Zuweisung des Input-Feldes aus? Ich vermute mal, dass du einfache Anführungszeichen verwendet hast. Der Weg mit htmlspecialchars() ist richtig. Diese Funktion behandelt aber standardmäßig nur doppelte Anführungszeichen; einfache Anführungszeichen werden nicht ersetzt. Für volle Unterstützung gib als zweiten Parameter ENT_QUOTES an.

MfG, Gobble-G
 
Am besten kann man dir dann direkt eine Lösung anbieten, wenn du uns ein Beispiel deines PHP Codes für das speichern und lesen angeben würdest.
 
Nimm htmlentities();

Beispiel:
PHP:
<input type="text" name="produkt_beschreibung" value="<?=htmlentities($produkt['beschreibung'])?>" />
 
Du musst den String escapen, vermutlich hast du als Als Zellentyp Text gewählt.
Mach einn addslashes($wert) dran. Beim auslesen kommt dann stripslashes($wert). Gab auch mal ne mysql-Funktion. mysql_escape_string() oder so... aber addslashes tuts auch. Es werden dann dem ' ein \ vorrangestellt.
 
Wenn man will, dass die ' auch escaped werden (egal, ob mit htmlentities() oder htmlspecialchars()), dann muss man, wie oben schon genannt (und hier anscheinend ignoriert wurde), als zweiten Parameter ENT_QUOTES dazu nehmen.

z.B. $neu = htmlspecialchars("<a href='test'>Test</a>", ENT_QUOTES);
 
Zurück
Oben