2016-09-16 10 views
0

これを取得しないでください。 私は基本的なフォームを検証する必要があります。私はCIのform_validationライブラリを使用して、フォームの検証ルールは "必須"に設定されています...フォームの検証が失敗した場合、ログインフォームに検証エラーをエコーする必要があります。デフォルトで使用しているIm <?php echo validation_errors(); ?>ヘルパーは自動的に読み込まれます。フォームの機能はOKです。どのようにすればよいのですか?問題はフレームワークがエラーメッセージを表示しないことです。Codeigniterの検証エラーを表示できません

login_form.php - VIEW

<?php echo validation_errors(); ?> 

<?php echo form_input('email' , 'email'); ?> <br> 
<?php echo form_input('password' , 'password'); ?> <br> 
<?php echo form_submit('submit' , 'submit'); ?> 

login.php - CONTROLLERこの希望はあなただけの設定フォームアクションを助けるようにあなたは、コントローラのコードを使用していないのはなぜ

<?php 
Class Login extends CI_Controller { 

    function index() { 
    $data ['content'] = "login_form"; 
    $this->load->view("template", $data); 
    } 

    function validate() { 
    $this->load->library("form_validation"); 


    $this->form_validation->set_rules('email' , 'email' , 'trim|xss_clean|required'); 
    $this->form_validation->set_rules('password' , 'password' , 'md5|trim|required'); 

    if($this->form_validation->run() == FALSE) { 
     redirect('login/index'); 
    } 
    else { 
     redirect("user/profile"); 
    } 
    } 

} 
?> 
+0

はあなたのコントローラとビュー – Farhan

+0

リダイレクト(「ログイン/インデックス」)を貼り付けてくださいすることができます。あなたのビューをロードするリダイレクトを使用しないでください – Farhan

+0

ここにフルコードです。 – asdasdasdasdasdasdasdasdasdasd

答えて

1

to login.php login.php - CONTROLLER

function index() { 
    $data ['content'] = "login_form"; 
    $this->load->library("form_validation"); 
    $this->form_validation->set_rules('email' , 'email' , 'trim|xss_clean|required'); 
    $this->form_validation->set_rules('password' , 'password' , 'md5|trim|required'); 
    if($this->form_validation->run() == FALSE) { 
      $this->load->view("template", $data); 
    } 
    else { 
     redirect("user/profile"); 
    } 
} 

login_form.php - VIEW

<?php echo validation_errors(); ?> 

<?php echo form_input('email' , 'email'); ?> <br> 
<?php echo form_input('password' , 'password'); ?> <br> 
<?php echo form_submit('submit' , 'submit'); ?> 
+0

@goranにform_open()が表示されません。リダイレクトする代わりに、ページビューを再ロードするだけです。あなたがリダイレクトするとき、 'form_validation'クラスとそのすべてのデータを含む、現在のページのすべてのデータが失われます。 [フォーム検証文書](http://www.codeigniter.com/user_guide/libraries/form_validation.html)の例を注意深く見てください。あなたはそれが同じように行われるのを見るでしょう。上記は正解です。 – DFriend

+0

@Farhanは通常、実行部分では '=='ではなく '==='です – user4419336

0
if($this->form_validation->run() == FALSE) { 
    redirect('login/index'); 
} 

がリダイレクトしないでください、それ以外のエラーは使用できません。代わりに、その詳細については、以下のリンク

if($this->form_validation->run() == FALSE) { 
    $data ['content'] = "login_form"; 
    $this->load->view("template", $data); 
}  

チェックを保つ:
Form Validation : CodeIgniter User Guide

関連する問題