带撇号的 mysql 文本值未正确显示

发布于 2024-11-09 03:47:51 字数 404 浏览 3 评论 0原文

我使用以下 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

痞味浪人 2024-11-16 03:47:51
<input name='groupname' type='hidden' value='$groupname' />

将生成:

<input name='groupname' type='hidden' value='Mr Davis's Group' />
                                                     ^----

在指定位置,浏览器的解析器将看到 value= 的“结尾”,后面是一些未知属性 s 和损坏的属性 Group '

要将这种类型的文本嵌入到表单中,您需要使用 htmlspecialchars(),它将转换任何 HTML 元字符(<> >、'") 到其字符实体等效项中,以便它们可以安全地嵌入到表单中。

addslashes() 是一种已弃用的方法“安全”添加将某些内容嵌入到数据库中不会使某些内容安全地嵌入到 HTML 中。

<input name='groupname' type='hidden' value='$groupname' />

Will generate:

<input name='groupname' type='hidden' value='Mr Davis's Group' />
                                                     ^----

At the indicated spot, the browser's parser will see the 'end' of the value=, followed by some unknown attribute s and a broken attribute Group '.

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.

戏剧牡丹亭 2024-11-16 03:47:51

检查输入网页的文本编码。匹配您的数据库字符集 - 使用 utf-8。

Check the text encoding of your input webpage. Match your db charset - use utf-8.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文