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];
}