codeigniter中$this->input->post()
和$_POST[]
之间有什么区别?
答案 0 :(得分:4)
$_POST
是原生PHP superglobal
$this->input->post()
是CodeIgniter Input Class
从他们的文件:
输入类有两个目的:
- 它预处理全局输入数据以确保安全。
- 它提供了一些辅助方法来获取输入数据并对其进行预处理。
醇>
因此,$this->input->post()
是CodeIgniter提供的辅助方法。不必检查$_POST
中是否设置了值,检索它,然后保护该值免受XSS攻击等安全问题的影响,您只需使用$this->input->post()
并让它为您完成工作。 / p>
这就是使用框架的重点。它会为您处理这样的细节,因此您可以专注于实现业务逻辑。
答案 1 :(得分:0)
$this->input->post()
用于从控制器中的视图中获取单个值,另一方面,$_POST[]
用于从控制器中的视图中获取整个值。我们也可以在$_POST['some_value']
$this->input->post()
答案 2 :(得分:0)
两个函数的工作方式相同,它将获取HTTP POST variables
。
$_POST
是一个本机PHP超全局变量(这意味着它们始终可以访问,无论范围如何 - 您可以从任何函数,类或文件访问它们而无需执行任何特殊操作。)
e.g. $_POST['form name goes here']
$this->input->post()
是CodeIgniter的内置功能。它将包含2参数。第一个参数将包含POST变量的名称。第二个参数可选。第二个可选参数允许您通过XSS过滤器运行数据。通过将第二个参数设置为布尔值TRUE来启用它。
e.g.
$this->input->post(NULL, TRUE); // returns all POST items with XSS filter
$this->input->post(); // returns all POST items without XSS filter