我有一个html表单,访问者可以填写并向我发送一些信息,如电子邮件。它像这样发送:
$body = print_r($_POST, true);
mail ($to, $subject, $body, $headers);
当他们写 abc'def 时,我会 abc \'def
这个额外的\
是什么?我怎么能阻止它?
答案 0 :(得分:7)
因为魔法引用。请参阅here。
他们没有输出不同的东西 - $_POST
超全局已经有反斜杠。
答案 1 :(得分:2)
这是最有可能的,因为你打开了 magic quotes ,但是你可以这样做:
if (get_magic_quotes_gpc())
{
$new_text = stripslashes($text);
}
现在$new_text
应正常输出。
答案 2 :(得分:2)
反斜杠是一个转义字符 - 它让解析器知道你不想以PHP理解它们的正常方式使用单引号。如果要在输出中删除它们,请使用stripslashes方法。
string stripslashes ( string $str )