【发布时间】:2016-02-12 15:45:18
【问题描述】:
我正在使用 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。
【问题讨论】:
-
如果我没记错的话,CI Input 类从帖子中提取所有数据并将其缓存在内部变量中,因此当您使用 $this->input->post 时,您将从该缓存中获取值.这意味着,您需要在 CI 加载之前更改 Input 类,或将数据设置为 $_POST 数组。
-
如果是这样,这是一个奇怪的行为。应该有一种手动设置值的方法。 :(
-
不是真的,这是有道理的 - 从脚本启动的那一刻起,您的 POST 数据不应该改变。
-
那么,你有什么推荐的?
-
还有其他使用 Codeigniter 的验证方式吗?
标签: php json codeigniter