我可以一起使用这些PHP函数吗?

时间:2011-02-09 03:43:53

标签: php

我可以在下面使用这些PHP函数:

$user = mysql_escape_string($user);
$user = filter_var($user, FILTER_SANITIZE_STRING);
$user = stripslashes($user);
$user = trim($user);

像这样:

$user = mysql_escape_string(stripslashes(trim(filter_var($user, FILTER_SANITIZE_STRING))));

抱歉,如果这是一个愚蠢的问题。

5 个答案:

答案 0 :(得分:3)

我认为你案件中最明智的功能顺序是:

$user = mysql_real_escape_string(trim(filter_var(stripslashes($user), FILTER_SANITIZE_STRING)));

很少注意到:

答案 1 :(得分:1)

var_filter根据预定义过滤器列表验证或清理您的var:FILTER_VALIDATE_EMAIL,FILTER_SANITIZE_EMAIL,FILTER_VALIDATE_URL,FILTER_SANITIZE_URL。

修剪和striplashes是旧学校消毒你的vars的方式

mysql_escape_string为mysql清理你的查询,因此不推荐使用此函数,必须使用mysql_real_escape_string,语法相同。

var_filter是最优雅的,有很多来自trim和stripslashes的选项

http://www.php.net/manual/en/filter.filters.php

答案 2 :(得分:0)

是的,就PHP的功能而言,但是请为了上帝的爱而不是,因为任何需要阅读您之后的代码的人的理智;或者你,他将在六个月的时间内阅读该代码并想要伤害自己真的很糟糕。

此外,它应该是(最后调用的函数应放在最外面,根据你的例子 - 不是任何形式的理智,所以修改你的代码而不是这样做 - 这纯粹是教育性的!):

$user = trim(stripslashes(filter_var(mysql_escape_string($user), FILTER_SANITIZE_STRING)));

在实用性方面,{1}}应该是阻止SQL注入所需的全部内容。

答案 3 :(得分:0)

是的,但是你的例子是错误的 - 请注意。它不容易阅读。

答案 4 :(得分:0)

据我所知,mysql_escape_string()是防止SQL注入所需的全部内容。如果没有,请发表评论,以便我开悟:)