为什么 PHP 自动 html 不解码我的 POST?

发布于 2024-11-08 06:18:16 字数 244 浏览 1 评论 0原文

我正在为一个项目使用 Zend Framework。为什么当我发出 POST 请求并通过 $this->_request->getParams() 获取控制器中的参数时,它显示未解码的值?例如像 Speakers & 这样的字符串HTML 表单中的键盘 被检索为 Speakers & PHP 中的 getParams() 键盘

PHP 不会自动解码每个发布的值吗?

I'm using Zend Framework for a project. Why when I make POST request and get the params in my controller by $this->_request->getParams() it shows undecoded values? For example a string like Speakers & keyboards in my HTML form is retrieved as Speakers & keyboards from getParams() within PHP.

Doesn't PHP autodecode every posted value?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

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

发布评论

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

评论(3

初心未许 2024-11-15 06:18:16

嗨,约翰,感谢您的提示!我认为这确实是问题所在,因为我正在发出 AJAX POST 请求,并且它从页面 HTML 获取数据。所以我最好在发送请求之前使用像 urlDecode() 这样的东西......你觉得怎么样?

那么问题是您正在发送 HTML 并且您想要文本。

当您从页面获取内容时,获取的是文本而不是 HTML。因此,不要使用 innerHTML 或 jQuery 的 .html()。获取一个 textNode 并读取其 data 属性,或使用 jQuery 的 .text()

Hi John, thanks for the hint! I think that's the problem really as I'm making an AJAX POST request and it takes data from the page HTML. So I better use something like urlDecode() before sending the request... What do you think?

The problem then, is that you are sending HTML and you want text.

When you grab the content from the page, get text instead of HTML. So don't use innerHTML or jQuery's .html(). Get a textNode and read its data property, or use jQuery's .text().

屋檐 2024-11-15 06:18:16

因为没有理由这样做。

数据被编码以供传输,然后再次解码。 HTML 不是用于传输的编码。

期望接收 HTML 的唯一原因是 HTML 是否已发送,如果发送了 HTML,则(大概)需要 HTML。接下来通常不会发生转换为文本的事情。

Because there is no reason to do so.

Data is encoded for transport, and then decoded again. HTML isn't an encoding used for transport.

The only reason to expect to receive HTML is if HTML was sent, and if HTML is sent then (presumably) HTML is desired. Converting to text wouldn't often be a desired thing to happen next.

墨小沫ゞ 2024-11-15 06:18:16

PHP 自动解码转义的内容,而不是 HTML 实体中的内容。

PHP autodecodes the escaped content, not content which is in HTML entities.

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