由于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');
}
}
答案 0 :(得分:0)
这一行:
$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!";
}
答案 1 :(得分:0)
这一行是正确的
$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');
}
答案 2 :(得分:0)
更改
if($this->form_validation->run()) {
到
if($this->form_validation->run($this)) {