-1

当我在没有任何框架的情况下使用 PHP 时,我会使用类似这样的内容来验证帖子

$username = trim(mysql_real_escape_string($_POST['username']));

但在 CodeIgniter 我做了类似的事情

$username = $this->input->post('username');

CodeIgniter 会清理字符串还是我必须这样做?

4

2 回答 2

1

Codeigniter 在使用内置的Database Library时会自动清理字符串。

在您的问题中,您仅访问输入值,但根本不进行任何处理或数据库活动。

您可以使用表单验证库对正在访问的输入进行任何验证,但这是在调用表单视图的控制器中完成的,而不是在表单处理控制器中完成的。

于 2013-01-25T18:45:19.690 回答
1

CodeIgniter 的输入类$_POST通过xss_clean()安全类中的过滤器方法获取所有信息。

此方法的文档及其名称表明这不是查询字符串清理程序(如问题中所建议的那样)。相反,在使用数据库驱动程序和绑定时,CI 在执行查询之前巧妙地执行了清理。

“查询绑定”下的数据库查询文档的改编:

$sql = "SELECT * FROM some_table WHERE id = ?";

$this->db->query($sql, array($this->input->post('id')));
于 2013-01-25T18:43:56.007 回答