我想驗證我的登錄表單,就像Google一樣。如何在訂單中驗證表單codeigniter
首先檢查用戶名然後檢查密碼;如果兩者都是空的,那麼在用戶名框上只有一個錯誤。
在CodeInginter中,如果兩者都爲空,則打印每個字段都是必需的消息。
我們可以使用CodeIgnightor輕鬆模擬此功能嗎?
我想驗證我的登錄表單,就像Google一樣。如何在訂單中驗證表單codeigniter
首先檢查用戶名然後檢查密碼;如果兩者都是空的,那麼在用戶名框上只有一個錯誤。
在CodeInginter中,如果兩者都爲空,則打印每個字段都是必需的消息。
我們可以使用CodeIgnightor輕鬆模擬此功能嗎?
你需要研究,然後再發布一些問題。 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'
)
);
嘗試像這樣
$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');
}
我的意思是,使用CI API,有沒有辦法來重寫form_error()方法。我可以從服務器端處理它。謝謝。 – kiriappa
是的,你可以通過創建自定義庫http://ellislab.com/codeigniter/user-guide/general/creating_libraries.html –
嗨可以請你閱讀本:http://meta.stackexchange.com/questions/56817/can-we-prevent-some-of-the-低質量問題從進入我們的系統 - 謝謝!我批准編輯和短信不適合這個網站... –
對不起,短信打字,我的錯誤。 – kiriappa
我通常做'谷歌風格'驗證客戶端,並最終驗證兩個服務器端。客戶端驗證應該在正常情況下阻止提交,如果其中一方丟失,這會使消息抱怨極其罕見。這消除了您的控制器中的大量垃圾。 –