2013-09-17 6 views
0

Из-за ошибки в AngularJS мне больше, чем когда-либо, чтобы CodeIgniter подтвердил мою регистрационную форму.Почему валидация формы 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'); 
     } 

    } 
+1

что о диапазоне с ** max_length **? –

+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!"; 
} 
+0

Я использовал оба способа. В конечном итоге это лучше, чем то, что я использовал, но это не меняет того факта, что form_validation, похоже, не возвращает никаких ошибок. –

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'); 
} 
+0

Хорошо, спасибо, что поймали это, но пароль не был моей самой большой заботой. Это главным образом проверка того, существует ли пользователь. Как я помню, CodeIgniter не требует от вас создания отдельной функции из-за 'is_unique []'. –

+0

Вы можете создать отдельную функцию для проверки имени пользователя, но это встроенная функция, данная codeigniter. Я лично считаю, что это лучший вариант, который вы должны использовать встроенную функцию codeigniter. – user2727841

+0

Вот что я пытаюсь сделать. Но это не сработает. –

0

Изменить

if($this->form_validation->run()) { 

в

if($this->form_validation->run($this)) { 
Смежные вопросы