PHP 7.2:HTTP 表单发布,某些内容正在用反斜杠转义单引号。Magic Quotes 在 5.x 中被删除

Ter*_*men 2 php apache wordpress

有人知道我可以在哪里改变这种行为吗?

正如预期的那样,“魔术引号”设置不会执行任何操作,因为该功能现已消失。然而,有些东西试图提供帮助,但我不确定是什么。

重现步骤:

  • 表单上有一个字段
  • 输入带有单引号的内容,例如"Terry's String"
  • 发布表格
  • $_POST['fieldname']) 现在包含输入的字符串,该字符串带有单引号,前面带有\类似的内容:Terry\'s String

关闭 php 配置文件中的魔术引号没有任何效果。

有人知道还有什么地方可以看或如何解决这个问题吗?

编辑 `var_dump($_POST['FirstName']);

returns: string(15)“特里的绳子”`

var_dump($_GET['名字']); 回报

array(1) { ["FirstName"]=> string(8) "Terry\'s" }当我在 GET 中传递参数时。

来自浏览器的表单发布显示:FirstName=Terry%27s+String

Ter*_*men 5

感谢大家,特别是@Phil,他给我指出了var_dump(file_get_contents('php://input'));

尽管 PHP 7.2 没有 Magic Quotes,但 WordPress 有自己的 magic_quotes 实现,并且正在修改 PHP _POST 数据以提供“帮助”。

尽管我使用我认为是 PHP 表单发布数据的内容编写纯 PHP 代码,但实际上我得到的是经过净化的副本。

事实证明,WordPress 存在理智问题,无法决定是否要打开或关闭 Magic Quotes,即使 PHP 从该语言中删除了该功能。

#18322. 通往理智的魔法之路

WordPress 和魔术报价