Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Codeigniter在回调时传递两个值(form_验证)_Php_Oop_Codeigniter_Frameworks - Fatal编程技术网

Php Codeigniter在回调时传递两个值(form_验证)

Php Codeigniter在回调时传递两个值(form_验证),php,oop,codeigniter,frameworks,Php,Oop,Codeigniter,Frameworks,我试图将两个值传递给一个函数,以便检查用户的用户名和密码。然而,我不能让它工作。当我有一个值时,这样做就没有问题了。但是如何传递多个值呢 函数($val1,$val2) 这是我的密码 (如果我没有答对问题,请纠正我:) 我不会那样做的 为什么不在验证输入字段时调用check\u login($username,$password)函数,而不是使用_check\u login()函数回调作为用户名字段的验证器(imho,这没有什么意义) 所以 在用户模型中,您将进行检查 不管怎么说,这就是form

我试图将两个值传递给一个函数,以便检查用户的用户名和密码。然而,我不能让它工作。当我有一个值时,这样做就没有问题了。但是如何传递多个值呢

函数($val1,$val2)

这是我的密码 (如果我没有答对问题,请纠正我:)

我不会那样做的

为什么不在验证输入字段时调用
check\u login($username,$password)
函数,而不是使用_check\u login()函数回调作为用户名字段的验证器(imho,这没有什么意义)

所以

在用户模型中,您将进行检查

不管怎么说,这就是form_验证库的作用,验证输入,而不是详细说明数据


如果您只是想检查用户是否存在(例如,为了避免重复)以验证输入字段,那么您不需要$password参数,因此回调可以正常工作。

如果您想向函数传递两个变量,请更改第6行

$this->form_validation->set_rules('username', 'Username', 'required|alpha|xss_clean|callback__check_login');


对于两个以上的值,您需要使用
http\u build\u query($val2)
,然后
explode
将其放入函数内部

公共函数分数检查($name,$arr) {如果您想传递两个变量,我找到了用这两个变量创建数组的最佳方法

$arr = array($val1, $val2);
$this->form_validation->set_rules('username', 'Username', 'required|alpha|xss_clean|callback__check_login['.$arr.']');
你的回电会是这样的

public function check_login($str, $arr) {
      $val1  = $arr[0];
      $val2 = $arr[1];
}

希望这能有所帮助

好吧,如果我这样做的话,我不会从验证中收到任何错误消息,是吗?所以,我觉得这有点奇怪..嗯,换一种方式做了。所以,无论如何,谢谢你的举手。
$arr = array($val1, $val2);
$this->form_validation->set_rules('username', 'Username', 'required|alpha|xss_clean|callback__check_login['.$arr.']');
public function check_login($str, $arr) {
      $val1  = $arr[0];
      $val2 = $arr[1];
}