0

我正在使用..将以下 TEXT 值插入 MySQL

$groupname = addlashes($_POST['groupname'];

从我正在使用的 Mysql 获取值时

$name = $row['组名'];

回声$名称;

这个节目正确地显示为“戴维斯先生的小组”

但是当这个值添加到表单中时

然后我将值传递给另一个页面,并将其检索为

$name = $_POST['组名']; 回声$名称;

它显示为“戴维斯先生”,在撇号之前保留所有内容。

??不知道为什么,我尝试添加 stripslashes($_POST['groupname']; 并发生同样的事情

4

2 回答 2

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

会产生:

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

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

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

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

于 2011-05-24T17:21:42.027 回答
1

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

于 2013-01-06T04:45:08.330 回答