如果字符串以数字开头并包含引号,则 PHP addslashes 无法按预期工作

标签 php addslashes

我有一个带有文本框“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/"'

有没有其他人遇到过这种行为并想出了解决办法?

感谢您的帮助

最佳答案

是的,问题就在那里。

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

解数

1) 使用 mysql_real_escape_string 而不是 addslashes

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

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

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

问候

关于如果字符串以数字开头并包含引号,则 PHP addslashes 无法按预期工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18937354/

相关文章:

php - 如何在 PHP + MYSQL 中验证字符串?

php - SQL和php命令错误

php - 准备要添加到数据库的字符串数组

php - 如何使用 checkout.js 在 paypal 快速结帐中成功全额付款后获取 IPN 状态

javascript - 条件必填字段

php - 如何在addslashes()之后在mysql数据库中插入斜杠

php - 规避用于 HTML/JavaScript 注入(inject)的 htmlspecialchars(addslashes(input))

php - 将 URL 编码字符串转换为 UTF-8

php - php中的动态类名