2

我有一个 html 表单,访问者可以在其中填写一些信息并将其作为电子邮件发送给我。它像这样发送:

$body = print_r($_POST, true);

mail ($to, $subject, $body, $headers);

当他们写abc'def我得到abc\'def

这是什么额外的\?我该如何预防?

4

3 回答 3

7

因为魔术引号。见这里

他们没有输出不同的东西——$_POST超全局已经有了反斜杠。

于 2010-06-17T17:24:38.990 回答
2

这是最有可能的,因为您打开了魔术引号,但是您可以像这样进行:

if (get_magic_quotes_gpc())
{
   $new_text = stripslashes($text);
}

现在$new_text应该可以正常输出了。

于 2010-06-17T17:26:49.443 回答
2

反斜杠是一个转义字符 - 它让解析器知道您不想以 PHP 理解它们的正常方式使用单引号。如果要在输出中删除它们,请使用stripslashes方法。

string stripslashes ( string $str )

于 2010-06-17T17:29:02.303 回答