我让用户输入一些信息,这些信息将存储在sql中。当然,我想转义所有的引号等等..但我也不希望这些东西被输出到最终的html中。
我正在对所有的$_POST变量运行这个函数。它有效吗?
function cleanArray($array) //prevent funky insertions
{
foreach ($array as &$value)
{
$value = mysql_real_escape_string(stripslashes(nl2br($value)));
}
return $array;
}我担心转义字符串和条带斜杠会相互抵消?
发布于 2011-05-27 04:05:44
要在将字符串数据插入数据库之前对其进行转义,请使用mysql_real_escape_string。
若要稍后在超文本标记语言页中输出相同的数据,请使用htmlspecialchars() (如果希望将超文本标记语言源代码显示为文字字符),或使用strip_tags() (如果要静默删除任何超文本标记语言)。
不需要其他任何东西,除非您激活了magic quotes,在这种情况下,在执行mysql_real_escape_string()之前,您确实需要stripslashes()。然而,神奇的引号是deprecated and it would be much better to turn them off。
https://stackoverflow.com/questions/6144385
复制相似问题