由于 AngularJS 中的错误,我比以往任何时候都更需要让 CodeIgniter 验证我的注册表。
我已经做了我能想到的一切来解决这个问题。也许它只是需要一双不同的眼睛?或者也许有人以前处理过这个问题?
public function register_validation() {
$this->load->library('form_validation');
$this->form_validation->set_rules('username', 'Username',
'required|trim|is_unique[users.username]|max_length[32]');
$this->form_validation->set_rules('password', 'Password',
'required|trim|min_length[6]');
$this->form_validation->set_rules('email', 'Email',
'required|trim|valid_email|is_unique[users.email]');
if($this->form_validation->run()) {
echo "Pass!";
} else {
echo "NOPE!";
$this->load->view('home');
}
}
这一行:
$this->form_validation->set_rules('username', 'Password',
'required|trim|min_length[6]');
应该是:
$this->form_validation->set_rules('password', 'Password',
'required|trim|min_length[6]');
你用了两次username
。您应该将run()
检查更改为:
if($this->form_validation->run() == FALSE))
{
echo "NOPE!";
$this->load->view('home');
}
else
{
echo "Pass!";
}
此行是正确的
$this->form_validation->set_rules('username', 'Username',
'required|trim|is_unique[users.username]|max_length');
第一个用户名是您的字段名称,第二个用户名是错误中显示的用户名。
但是这条线
this->form_validation->set_rules('username', 'Password',
'required|trim|min_length[6]');
在这里,您使用了已经验证的用户名,而不是您使用的用户名 密码
应用条件的方法有很多种
第一个是
if($this->form_validation->run() == FALSE)) {
$this->load->view('home');
} else {
echo "Pass!";
}
第二个是
if($this->form_validation->run() != FALSE) {
echo "Pass!";
} else {
$this->load->view('home');
}
更改
if($this->form_validation->run()) {
自
if($this->form_validation->run($this)) {