当前位置: 首页 > 面试题库 >

禁用“魔术引号”后,PHP / WordPress为什么继续自动转义我的POST数据?

龚铭
2023-03-14
问题内容

这是一个简单的问题,答案很奇怪。

get_magic_quotes_gpc()报告0。我重复一遍,魔术引号已关闭。魔术引号似乎已被禁用php.ini(不是在运行时)。

不过,在PHP中访问时,包括单引号(’)在内的所有POST数据都会被转义。是什么原因造成的?

在准备测试用例时,我发现了问题的一般根源。当我们的应用程序与WordPress多站点安装集成时,我们正在引导WordPress。当我禁用WordPress引导程序时,会禁用自动转义。WordPress的自动转义代码可能位于何处?


问题答案:

我想我找到了。问题(错误):http :
//core.trac.wordpress.org/ticket/18322

解决方案:http :
//codex.wordpress.org/Function_Reference/stripslashes_deep

    $_GET       = array_map('stripslashes_deep', $_GET);
    $_POST      = array_map('stripslashes_deep', $_POST);
    $_COOKIE    = array_map('stripslashes_deep', $_COOKIE);
    $_SERVER    = array_map('stripslashes_deep', $_SERVER);
    $_REQUEST   = array_map('stripslashes_deep', $_REQUEST);

注意:如@Alexandar O’Mara所建议,您可能要重新考虑像这样覆盖超全局变量。例如,如果适合您的情况,则可以使用诸如$post = array_map('stripslashes_deep', $_POST);

另请参阅@quickshiftin的出色答案。



 类似资料:
  • 问题内容: 根据PHP手册,为了使代码更易于移植,他们建议使用类似于以下内容的转义数据: 我还有其他将要执行的验证检查,但是从转义数据的角度来看,上述检查严格地安全吗?我还看到在PHP 6中将不再使用魔术引号。这将如何影响上述代码?我希望不必依赖于特定于数据库的转义函数,例如mysql_real_escape_string()。 问题答案: 魔术引号天生就坏了。它们本来是要清理PHP脚本的输入,但

  • 问题内容: 因此,我有一个名为Save.php的文件。 它需要两件事:一个文件和新内容。 您可以通过发送类似的请求来使用它。 ..但当然是对网址进行编码。:)为了简化和可读性,我不做任何编码。 该文件有效,但不是内容。 ..我发现.. .. 当稍后通过XHR获取JSON文件时尝试使用时,当然会抛出错误。 要保存内容,我只用.. 我该怎么做才能消除反斜线? 问题答案: 关闭在php.ini关闭。

  • 我试图将两个连接在一起的术语分隔成逗号分隔的带引号的值。 使用此代码: 用这个输出 我目前得到一个数组,看起来像 作为一个数组,我希望得到的是 这可能是世界上最容易解决的问题,但是我花了几个小时浏览StockOverflow、WordPress论坛和PHP网站,出于某种原因,无法准确地解决这个问题。我已经接近并获得了两个术语的引号,但不是双引号,并且为了使脚本/插件工作,它必须是双引号。 请帮助一

  • 问题内容: 我在Java EE服务器上使用GSON为视图提供一些json。在某个对象中,我有很长的文字,可以包含任何内容(例如“多么的“好”新闻!”)。 我很惊讶,默认情况下,GSON不会转义双引号,因此它不会生成有效的JSON。 有这样做的好方法吗? 问题答案: 也许我不理解您的问题,但是我能够让GSON处理带引号的字符串,而无需进行任何设置或更改。 输出: 也许我不明白您的要求?

  • 问题内容: 我最近一直在使用Python,而我发现有点奇怪的是,广泛使用了“魔术方法”,例如,使其长度可用,一个对象实现一个方法,然后在你写。 我只是想知道为什么对象不能简单地定义一个方法并直接将其作为对象的成员来调用,例如?我敢肯定,Python这么做的确有充分的理由,但是作为一个新手,我还没有弄清楚它们到底是什么。 问题答案: AFAIK在这方面很特殊,并且具有历史渊源。 这是FAQ中的报价:

  • 问题内容: 如中所述,HTML中的单引号什么时候变得如此流行?和Jquery在attribute中嵌入引号, HTML上的Wikipedia条目表示以下内容: 当单引号字符(’)用于引用属性值时,当它出现在属性值本身中时,也必须转为或(不应与XHTML文档中的字符一样转义)。 为什么不应该使用?另外,可以安全地使用它吗? 问题答案: 在有效HTML4实体]的正式列表中,但不是。 从C.16起。命名