如果字符串以数字开头并包含引号,则PHP addslashes无法按预期工作
作者:互联网
我有一个带有文本框’size_txt’的表单,它存储表示大小选择的字符串.
<input type="text" name="size_txt" id="size_txt" style="display: none;" />
该值将发布到另一个页面并由此代码检索
$new_size=addslashes($_POST['size_txt']);
不幸的是,它需要存储英寸的缩写,即“引号”
如果字符串是’10“中’,则$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 来源: https://codeday.me/bug/20190703/1367928.html