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

mua*_*aaz 1 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'];
Run Code Online (Sandbox Code Playgroud)

试试#2

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

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

mua*_*aaz 8

这就是我实现它的方式.虽然,它似乎不是一个准确的解决方案,但它很简单,没有解决方法.

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

$_SERVER["REQUEST_METHOD"] = "POST";
Run Code Online (Sandbox Code Playgroud)

然后像这样设置变量

$_POST['post_var'] = "value";
Run Code Online (Sandbox Code Playgroud)

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

而已 :)

  • 很好的答案!谢谢。:) (2认同)