PHP在插入MySQL时会向字符添加斜杠

时间:2013-08-03 20:42:22

标签: php html mysql security filtering

例如,当'在文本字段中键入'时,PHP会在其前面加上\。

我正在使用以下内容进行过滤:

$comment_body = $_POST['comment_body'];
$comment_body = nl2br(htmlspecialchars($comment_body));
$comment_body = mysqli_real_escape_string($db_conx,$comment_body); 

如何阻止此斜线出现?

3 个答案:

答案 0 :(得分:1)

您应该使用与上下文相关的清理:

保存到数据库时仅使用 mysqli_real_escape_string()。将varible输出到HTML时,只需使用 htmlspecialchars()

自动添加斜杠可能是由于 magic_quotes_gpc 的设置,已在较新版本的PHP中删除,但您可以在 phpinfo();

答案 1 :(得分:0)

这是mysqli_real_escape_string的作用。这只应在将数据放入数据库时​​使用。如果您要输出$ comment_body,请离开片段的最后一行。如果您正在进行双重转义,则可能是magic quotes配置指令的结果。

答案 2 :(得分:0)

这可能是因为你有魔术引号:magic_quotes_gpc 如果是这种情况,您可以使用this

将其停用