【发布时间】:2011-05-26 20:03:43
【问题描述】:
我让用户输入一些将存储在 sql 中的信息。当然我想转义所有引号之类的......但我也不希望这些东西输出到最终的html中。
我正在为所有 $_POST 变量运行此函数。有效吗?
function cleanArray($array) //prevent funky insertions
{
foreach ($array as &$value)
{
$value = mysql_real_escape_string(stripslashes(nl2br($value)));
}
return $array;
}
我担心转义字符串和斜线会相互抵消?
【问题讨论】:
-
stripslashes 将从用户输入中删除斜杠,然后 mysql_real_escape_string 会将它们添加回来:) 顺便说一句,mysql_real_eascape 只能用于链接标识符或已打开的数据库连接,否则会返回错误。
-
如果您使用准备好的语句,您可以完全避免转义:stackoverflow.com/questions/4357340/…
-
我正在尝试完成一些非常简单的事情。转义引号..然后在我输出我的内容之前对它们进行转义。
-
@ionfish 你在什么时候转义引用?
-
如果您使用准备好的语句,则无需转义或取消转义任何内容。请参阅http://mattbango.com/notebook/web-development/prepared-statements-in-php-and-mysqli/ 以获得良好的介绍。
标签: php mysql arrays mysql-real-escape-string stripslashes