在$ _POST变量中设置值以通过Codeigniter进行验证

时间:2015-11-11 14:16:30

标签: php json codeigniter

我正在使用Codeigniter创建基于WebSocket的应用程序。因此,数据将作为JSON字符串(而不是POST方法)。我想使用Codeigniter的内置form_validation方法来验证作为JSON接收的数据。

这是我到目前为止尝试设置变量所以我可以通过$this->input->post('variable_name')访问它但是。

尝试#1

$_POST['variable_name'] = !isset($data['variable_name']) ? NULL : $data['variable_name'];

尝试#2

$variable_name = !isset($data['variable_name']) ? NULL : $data['variable_name'];
$this->form_validation->set_value("variable_name", $variable_name);

但是当我使用$this->input->post('variable_name')时 它返回NULL

2 个答案:

答案 0 :(得分:8)

以下是我如何实现它。虽然,它似乎不是一个准确的解决方案,但它很简单,没有解决方法。

我在执行表单验证之前只添加了一行

$_SERVER["REQUEST_METHOD"] = "POST";

然后像这样设置变量

$_POST['post_var'] = "value";

现在设置验证规则并执行验证。

它是:)

答案 1 :(得分:5)

有一种名为set_data()的方法,专门用于验证非POST输入。

http://www.codeigniter.com/userguide3/libraries/form_validation.html#validating-an-array-other-than-post