javascript - 如果没有 stripslashes,json_decode 将无法工作(WordPress 中的 magic_quotes)

标签 javascript php json wordpress magic-quotes-gpc

在客户端,我正在处理 JavaScript 对象数组。提交时,我需要将其以表单形式发送到 PHP,并在服务器端进一步操作数据。

因此,当在 JavaScript 端构建或更改对象数组时,我将其保存到隐藏输入。它的形式符合预期,但问题是 json_decode返回NULL如果我不这样做stripslashes在解码之前。

当我使用 PHP > 5.5 和 get_magic_quotes_gpc() 时,魔术引号被关闭。总是返回FALSE .

为什么在这种情况下我需要stripslashes,在任何关闭魔术引号的生产服务器上都会出现这种情况吗?

P.S.:目前我仍在 Windows 和 EasyPHP 上开发环境。本地服务器。

服务器端发布的数据如下所示( var_dump ):

我使用 WordPress 作为我的应用程序的容器。

string(5045) "[{\"address_components\":[{\"long_name\":\"Flughafenstrasse\",\"short_name\":\"Flughafenstrasse\"...

最佳答案

我正在开发的应用程序是一个 WordPress 插件,因为它集成在 WordPress 中。事实证明,WordPress(截至当前版本:3.8.1)在加载时向 GET 和 POST 数据添加斜杠(引号)。即使 PHP > 5.4 和 get_magic_quotes_gpc 返回 0 数据仍然会被转义。

如果您使用 WordPress,解决方案就是简单地stripslashes,但谁知道 WordPress 何时会禁用此类行为,您的应用程序将再次出现问题:)

该问题的一些链接:

关于javascript - 如果没有 stripslashes,json_decode 将无法工作(WordPress 中的 magic_quotes),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21849455/

相关文章:

javascript - Null 检查 Javascript 中的大型分层对象

javascript - 使用 jQuery click() 打开 Facebook 共享对话框

Javascript 函数检查 JSON 对象上是否缺少日期

javascript - 为什么 [object Object] 提到 "object"两次?

javascript - 是否可以使用 PHP 比较两个帖子,当标题匹配时,获取帖子的 ID?

javascript - console.log javascript 对象/类 - 原型(prototype)更​​改前后的结果相同

php - MySQL/PHP 将新值插入表中(如果它还不存在)并以任何一种方式获取其 PK

PHP 和 Facebook : facebook-debug a URL using CURL and Facebook debugger

php - 在 CSS 中包裹长文本

json - 在Powershell中转换为JSON时如何更改选项卡宽度