mysql_real_escape_string()会取消stripslashes()吗?

时间:2011-05-26 20:03:44

标签: php mysql arrays mysql-real-escape-string stripslashes

我让用户输入一些将存储在sql中的信息。当然我想要逃避所有引号等等..但我不希望将这些东西输出到最终的html中。

我正在为所有$ _POST变量运行此函数。它有效吗?

 function cleanArray($array)  //prevent funky insertions
{
foreach ($array as &$value)
{
    $value = mysql_real_escape_string(stripslashes(nl2br($value)));
}
return $array;  
}

我担心逃脱字符串和striplashes会相互抵消吗?

1 个答案:

答案 0 :(得分:5)

要在将字符串数据插入数据库之前对其进行转义,请使用mysql_real_escape_string

要在HTML页面中稍后输出相同的数据,如果希望HTML源代码显示为文字字符,请使用htmlspecialchars();如果要以静默方式删除任何HTML,请使用strip_tags()

除非您已激活magic quotes,否则不需要任何其他内容,在这种情况下,您在执行stripslashes()之前确实需要mysql_real_escape_string()。但是,魔术引号为deprecated and it would be much better to turn them off

相关问题