5

我有一个带有文本框“size_txt”的表单,它存储一个表示尺寸选择的字符串。

<input type="text" name="size_txt" id="size_txt" style="display: none;" /> 

该值被发布到另一个页面并通过此代码检索

$new_size=addslashes($_POST['size_txt']);

不幸的是,它需要存储英寸的缩写,即“引号”

如果字符串是 '10" medium' 那么 $new_size 的值是 '10'

但是,如果字符串是 'medium 10"' 那么 $new_size 的值是 'medium 10/"'

有没有其他人遇到过这种行为并想出了如何解决它?

谢谢你的帮助

4

2 回答 2

2

是的,问题就在那里。

请注意,当在包含西里尔字符的字符串上使用 addlashes() 时,addslashes() 会完全混淆字符串,使其无法使用。

解决方案数

1) 使用 mysql_real_escape_string 而不是添加斜杠

2)尝试下面的代码,如 str_replace

$myString = str_replace("'", "\'", $myString);
$myString = str_replace('"', "'+String.fromCharCode(34)+'", $myString);

如果您还有问题,请告诉我。

问候

于 2013-09-21T20:46:31.010 回答
0

对于您的用例,您最好只使用 htmlspecialchars() 来转义“

于 2013-09-21T20:42:54.163 回答