2012-12-19 41 views
-3

我想驗證我的登錄表單,就像Google一樣。如何在訂單中驗證表單codeigniter

首先檢查用戶名然後檢查密碼;如果兩者都是空的,那麼在用戶名框上只有一個錯誤。

在CodeInginter中,如果兩者都爲空,則打印每個字段都是必需的消息。

我們可以使用CodeIgnightor輕鬆模擬此功能嗎?

+1

嗨可以請你閱讀本:http://meta.stackexchange.com/questions/56817/can-we-prevent-some-of-the-低質量問題從進入我們的系統 - 謝謝!我批准編輯和短信不適合這個網站... –

+0

對不起,短信打字,我的錯誤。 – kiriappa

+1

我通常做'谷歌風格'驗證客戶端,並最終驗證兩個服務器端。客戶端驗證應該在正常情況下阻止提交,如果其中一方丟失,這會使消息抱怨極其罕見。這消除了您的控制器中的大量垃圾。 –

回答

0

你需要研究,然後再發布一些問題。 codeIgniter用戶指南中提供了這些信息。任何我提供簡單的例子。

查看文件:login.php中

<form action="<?php echo ROOT_FOLDER ?>/controller_name/post_login" method="post" > 
        <p> 
         <label>Email:</label> <?php echo form_error('email'); ?><br /> 
         <input type="text" class="text" name="email" value="<?php echo set_value('email'); ?>" /> 
        </p> 

        <p> 
         <label>Password:</label> <?php echo form_error('passwd'); ?><br /> 
         <input type="password" name="passwd" class="text" value="" /> 
        </p> 

        <p> 
         <input type="submit" class="submit" value="Login" />        

        </p> 
    </form> 
這是寫在控制器文件

控制器功能..........

public function post_login() 
    { 

     $error_in_validation=set_form_validation($this->config->item('login_form')); 

     if($error_in_validation){ 
      show_form_validation_error('controller_file_name/login'); 
     } 
     else 
     { 
      $email=$this->input->post('email'); 
      $passwd=$this->input->post('passwd'); 
      $ret=$this->model_file_name->user_login($email, $passwd); 

      if($ret == NULL){ 

       $model=array(); 
       $model['error_msg']=$this->config->item('login_form_error_code_1');; 
       $this->load->view('controller_file_name/login',$model);    
      } else { 
       redirect("ro_manager/home"); 
      } 

     } 

    } 

在此之後,你需要創建你需要在config文件夾中創建一個名爲form_validation的文件名。在那你需要按照用戶指南編寫驗證規則。

 $config['login_form'] = array (
         array 
         (
          'key' => 'email', 
          'value' => 'Email', 
          'rule' => 'trim|required|valid_email|xss_clean' 
         ), 
         array 
         (
          'key' => 'passwd', 
          'value' => 'Password', 
          'rule' => 'trim|required|alpha_numeric|xss_clean' 
         ) 
        ); 
+0

好的,我想你誤解了我。我可以使用CI API顯示錯誤消息。即使在您的表單中提交空字符串,然後我們得到2個錯誤消息。我不需要,只顯示用戶名是空的。 – kiriappa

+0

我想你可以理解我,如果你檢查谷歌日誌驗證 – kiriappa

0

嘗試像這樣

$this->form_validation->set_rules('email', 'Email', 'required'); 

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

    $this->load->view('myform'); 

    }else{ 
    $this->form_validation->set_rules('passconf', 'Password Confirmation', 'required'); 
    if($this->form_validation->run() == FALSE){ 
     $this->load->view('myform'); 
    } 
    $this->load->view('formsuccess'); 
    } 
+0

我的意思是,使用CI API,有沒有辦法來重寫form_error()方法。我可以從服務器端處理它。謝謝。 – kiriappa

+0

是的,你可以通過創建自定義庫http://ellislab.com/codeigniter/user-guide/general/creating_libraries.html –