2013-11-14 6 views
2

Я пытаюсь проверить свою форму, но всегда возвращается с FALSE. Форма заполняет переменную POST, конфигурация проверки настроена, но она не работает. Я все испробовал, и теперь я застрял. Возможно, ваши глаза поймают ошибку.Codeigniter form_validation всегда возвращает false

Вот мой контроллер:

public function new_pass() 
{ 
    $code = mysql_real_escape_string($this->uri->segment(3)); 
    $this->load->model('forgot_password_model'); 

    if($this->forgot_password_model->check_code($code)) 
    { 
     if($this->input->post('submit')) 
     { 
      $this->new_pass_validation(); 
     } 
     else 
     { 
      $this->new_pass_form(); 
     } 
    } 
    else 
    { 
     redirect('welcome'); 
    } 
} 

private function new_pass_validation() 
{ 
    $this->load->library('form_validation'); 

    var_dump($this->form_validation->run('forgot_password/new_pass')); 
    var_dump($this->input->post()); 
    if ($this->form_validation->run() === FALSE) 
    { 
//   print_r('dump' . validation_errors()); 
     $this->new_pass_form(); 
    } 
    else 
    { 

    } 
} 

Конфигурационный/form_validation:

$config = array(
    'forgot_password/new_pass' => array(
      array(
       array(
        'field' => 'password', 
        'label' => lang('default_jelszo'), 
        'rules' => 'trim|required|min_length[5]|max_length[32]' 
      ), 
       array(
        'field' => 'repassword', 
        'label' => lang('default_jelszo_megerosites'), 
        'rules' => 'trim|required|matches[password]|callback_password_hash' 
      ), 
     ) 
    ), 
); 

И вид:

<section id="content"> 
    <a id="logo" href=""></a> 
    <?=validation_errors(); ?> 
    <div class="formwrapp"> 
     <form action="<?=site_url() . $this->uri->uri_string(); ?>" method="post"> 
      <h3>Forgot password</h3> 
      <ul> 
       <li>Pass</li> 
        <li><input type="password" value="" name="password" /></li> 

       <li>Repass</li> 
        <li><input type="password" value="" name="repassword" /></li> 

       <li>&nbsp;</li><li><input id="login" type="submit" value="Submit" name="submit" /></li> 
      </ul> 
     </form> 
    </div> 
</section> 
+0

Что возвращает ' '? – Max

+0

Он пуст. Я не знаю почему. – tthlaszlo

+0

'var_dump ($ this-> input-> post());' вернуть все, что вы ожидали? –

ответ

2

У вас есть ненужный массив в файле конфигурации, попробуйте:

$config = array(
    'forgot_password/new_pass' => array(
     array(
      'field' => 'password', 
      'label' => lang('default_jelszo'), 
      'rules' => 'trim|required|min_length[5]|max_length[32]' 
     ), 
     array(
      'field' => 'repassword', 
      'label' => lang('default_jelszo_megerosites'), 
      'rules' => 'trim|required|matches[password]|callback_password_hash' 
     ) 
    ) 
); 
+0

Спасибо! Я этого не видел. – tthlaszlo

0

Я думаю, что лучший способ, чтобы сделать работу, как ваш должен следовать этой ссылке ... т.е. без использования типа конфигурации, но если вы хотите использовать конфигурацию, я думаю, что вы забыли написать co де ...

$this->form_validation->set_rules($config); 

http://ellislab.com/codeigniter%20/user-guide/libraries/form_validation.html

+0

Конфигурация автозагружается в библиотеку 'form_validation'. И чтобы сохранить код чистым, вы должны использовать config. –

+0

Я думаю, вы меня неправильно поняли. Я просто хочу сказать, что вы можете использовать любой вариант, но если вы хотите использовать конфигурацию, то, пожалуйста, добавьте ниже код ... $ this-> form_validation-> set_rules ($ config); – Drudge

+0

Если вы назовете свой конфигурационный файл 'form_validation.php' и поместите массив правил, он будет autolod, и вам не нужно ничего добавлять. Правила проверки формы блогов из другой конфигурации - плохая практика. См. Красную ноту в разделе http://ellislab.com/codeigniter/user-guide/libraries/form_validation.html#savingtoconfig –

Смежные вопросы