例如,当在文本字段中键入 ' 时,PHP 会在其前面放置一个 \。
我正在使用以下内容进行过滤:
$comment_body = $_POST['comment_body'];
$comment_body = nl2br(htmlspecialchars($comment_body));
$comment_body = mysqli_real_escape_string($db_conx,$comment_body);
如何阻止此斜线出现?
您应该对上下文使用消毒:
保存到数据库时,仅使用mysqli_real_escape_string()。将变量输出到 HTML 时,只需使用htmlspecialchars()即可。
自动添加斜线可能是由于magic_quotes_gpc的设置,它已在较新版本的 PHP 中被删除,但您可以在phpinfo() 中检查您的设置;
这就是 mysqli_real_escape_string 所做的。这应该只在将数据放入数据库时使用。如果您要输出 $comment_body ,只需离开代码段的最后一行。如果您发生双重转义,则可能是 魔术引号配置指令的结果。
这可能是因为你有魔术引号:magic_quotes_gpc 如果是这种情况,你可以使用它禁用它