【发布时间】:2018-10-31 20:20:26
【问题描述】:
有人知道我可以在哪里改变这种行为吗?
正如预期的那样,“魔术引号”设置没有任何作用,因为该功能现已消失。但是有些东西正在尝试提供帮助,我不确定是什么。
重现步骤:
- 在表单上有一个字段
- 输入带有单引号的内容,例如
"Terry's String" - 张贴表格
- $_POST['fieldname']) 现在包含输入的带有单引号的字符串,前面带有
\,例如:Terry\'s String
在 php 配置文件中关闭魔术引号无效。
任何人都知道在哪里寻找或如何解决这个问题?
编辑 `var_dump($_POST['FirstName']);
returns: string(15) "特里的字符串"`
var_dump($_GET['FirstName']);返回
array(1) { ["FirstName"]=> string(8) "Terry\'s" } 当我在 GET 中传递参数时。
来自浏览器的表单帖子显示:FirstName=Terry%27s+String
【问题讨论】:
-
var_dump($_POST['fieldname']);返回什么?你在使用框架吗?是否有任何安全软件正在运行? -
@MarkusZeller 这是个坏建议,他应该首先解决添加斜线的问题。
-
当你有 $_GET 变量时会发生同样的事情吗? (可能更容易消除客户端行为,因为您可以简单地启动 curl 调用或将参数附加到浏览器 url)
-
您也可以尝试
var_dump(file_get_contents('php://input'));查看未解析的请求正文。这应该告诉您问题在 PHP 处理请求之前或之后是否存在 -
@TerryCarmen 好的,这是一个开始。现在,您完全确定与您的 Web 服务器一起使用的 PHP 版本吗?您可以尝试
echo PHP_VERSION;或尝试旧的phpinfo()(在浏览器中)。有些系统可以安装多个版本。phpinfo()还会显示正在使用的配置文件