带撇号的 mysql 文本值未正确显示
我使用以下 TEXT 值插入 MySQL:
$groupname = addslashes($_POST['groupname'];
从 Mysql 获取值时,我使用
$name = $row['groupname'];
echo $name ;
这正确地显示为“Mr. Davis's Group”,
但是当这个值添加到表单中时
,我将该值传递到另一个页面,并将其检索为
$name = $_POST['groupname']; 回显$名称;
它显示为“戴维斯先生”,保留撇号之前的所有内容。
??不知道为什么,我尝试添加 stripslashes($_POST['groupname']; 并发生同样的事情
I'm inserting the following TEXT value into MySQL using..
$groupname = addslashes($_POST['groupname'];
When getting the value from Mysql I'm using
$name = $row['groupname'];
echo $name;
And this show correctly as "Mr. Davis's Group"
but when this value in added to a form as
then I pass the value to another page, and retrieve it as
$name = $_POST['groupname'];
echo $name;
it show up as "Mr. Davis" keeping everything before the apostrophy.
??No clue why, i've tried adding stripslashes($_POST['groupname']; and same thing happens
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
将生成:
在指定位置,浏览器的解析器将看到
value=
的“结尾”,后面是一些未知属性s
和损坏的属性Group '
。要将这种类型的文本嵌入到表单中,您需要使用
htmlspecialchars()
,它将转换任何 HTML 元字符(<
、>
>、'
、"
) 到其字符实体等效项中,以便它们可以安全地嵌入到表单中。addslashes()
是一种已弃用的方法“安全”添加将某些内容嵌入到数据库中不会使某些内容安全地嵌入到 HTML 中。Will generate:
At the indicated spot, the browser's parser will see the 'end' of the
value=
, followed by some unknown attributes
and a broken attributeGroup '
.To embed this type of text in a form, you need to use
htmlspecialchars()
, which will convert any HTML metacharacters (<
,>
,'
,"
) into their character entity equivalents, so they can be safely embedded in a form.addslashes()
is a deprecated method of "safely" adding something into a database. It will not make something safe to embed in HTML.检查输入网页的文本编码。匹配您的数据库字符集 - 使用 utf-8。
Check the text encoding of your input webpage. Match your db charset - use utf-8.