我有一个 html 表单,访问者可以在其中填写一些信息并将其作为电子邮件发送给我。它像这样发送:
$body = print_r($_POST, true);
mail ($to, $subject, $body, $headers);
当他们写abc'def我得到abc\'def
这是什么额外的\
?我该如何预防?
我有一个 html 表单,访问者可以在其中填写一些信息并将其作为电子邮件发送给我。它像这样发送:
$body = print_r($_POST, true);
mail ($to, $subject, $body, $headers);
当他们写abc'def我得到abc\'def
这是什么额外的\
?我该如何预防?
因为魔术引号。见这里。
他们没有输出不同的东西——$_POST
超全局已经有了反斜杠。
这是最有可能的,因为您打开了魔术引号,但是您可以像这样进行:
if (get_magic_quotes_gpc())
{
$new_text = stripslashes($text);
}
现在$new_text
应该可以正常输出了。
反斜杠是一个转义字符 - 它让解析器知道您不想以 PHP 理解它们的正常方式使用单引号。如果要在输出中删除它们,请使用stripslashes方法。
string stripslashes ( string $str )