用于清理Web表单数据的php函数

时间:2012-10-17 17:47:58

标签: php mysql webforms sanitization

  

可能重复:
  Best way to prevent SQL injection in PHP?

我的php网站中的html web表单从客户端获取数据并将其放入mysql数据库。我想知道在将数据存储到mysql之前清理数据所需的步骤。

假设需要使用PHP执行此清理,然后将其插入到Mysql中,您能告诉我需要处理的内容吗?

作为一种特殊情况,除了一般的清理之外,我还想删除所有特殊字符,空格,并在放入数据库之前将所有字符转换为小写字母。这样做我需要注意哪些功能?

我对php很新。

感谢。

2 个答案:

答案 0 :(得分:4)

1.mysqli_real_escape_string()或mysql_real_escape_string()来转义引号

2.使用php filter_input获取其他表单数据

$search_html = filter_input(INPUT_GET, 'search', FILTER_SANITIZE_SPECIAL_CHARS);
$search_url = filter_input(INPUT_GET, 'search', FILTER_SANITIZE_ENCODED);

php手册还有其他选项,链接

http://php.net/manual/en/function.filter-input.php

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

答案 1 :(得分:3)

首先使用mysqli_real_escape_string()清理输入,它将转义字符串中的引号。

您可以使用strtolower()将字符转换为小写。

使用htmlspeiclachars()将特殊字符转换为HTML实体

使用正则表达式删除空格preg_replace( '/\s+/', ' ', $whatever );

如果要删除特殊字符,可以使用preg_replace('#[^\w()/.%\-&]#',"",$whatever);正则表达式。 (Source

其他清理过滤器参考here

最后但并非最不重要,因为你是初学者,我建议你参考documentation