SkarreMedlem sedan apr. 20012 427 inlägg Innan jag lägger in data i min MySQL-databas kör jag addslashes() om inte magic_quotes_gpc är aktiverat, men när jag väl lagt in datan i databasen finns inga "slashar" kvar.
Jag testar att skicka in "foo" i databasen (inkl. citationstecknen) och när jag skriver ut strängen precis innan jag kör mysql_query() ser den ut enligt följande:
\"foo\"
Men när jag tittar i databasen ser den ut så här:
"foo"
Hur kommer sig detta?
SkarreMedlem sedan apr. 20012 427 inlägg Hmmm... när jag tänker efter är det väl exakt så det är tänkt att det ska fungera. Men när t.ex. redigerar en nyhet och skriver ut en rubrik från databasen till ett formulärfält försvinner att text efter det första citationstecknet eftersom det avslutar value-attributet.
Vad är det bästa sättet att hantera detta på?
SkarreMedlem sedan apr. 20012 427 inlägg Oops.. det här vart helt fel forum. Flytta gärna till PHP.
MatteMedlem sedan aug. 20002 975 inlägg Ska du lägga in något i ett formulärsfält, kör htmlentities() eller htmlspecialchars() på det först.
<input type="text" name="var" value="<?php echo htmlentities($variabel, ENT_QUOTES) ?>">
SkarreMedlem sedan apr. 20012 427 inlägg Tack Matte, jag hittade även följande artikel i ämnet:
http://www.zend.com/zend/tut/using-strings.php#double
Zend skrev:
HTML does not support the use of slashes to escape double quotes. This is of particular concern when using hidden inputs in HTML forms to pass data, and when giving fields a default value. The best way to protect the data is to use htmlspecialchars() on it when creating the hidden input or default value.