輸入驗證我的想法:自定義助手與笨
- 創建可能檢查分鐘長度的輸入 場時加載自定義幫手。
- 創建它作爲幫手,以便它可以在不同的文件中重新使用 並保持它的組織和清潔。
下面我控制器代碼(應用/控制器/ registration.php的):
- 助手 「錯誤」 下面是正裝我自己創建的幫手。
callback_min_length [2]是我嘗試的值發送到所述輔助函數
//加載輔助 $這 - >負載>輔助(陣列( '表格', 'URL', '錯誤' ));
// Load library $this->load->library('form_validation'); // Set form rules $rules = array( array( 'field' => 'firstName', 'label' => 'firstName', 'rules' => 'callback_min_length[2]|trim' ) ); $this->form_validation->set_rules($rules); // Set custom error messages if ($this->form_validation->run() == FALSE) { $this->load->view('header'); $this->load->view('view_registration'); $this->load->view('footer'); } else { $this->load->view('header'); $this->load->view('view_registration'); $this->load->view('footer'); }
下面我定製的助手代碼(應用程序/傭工/ error_helper.php):
<?php if (! defined('BASEPATH')) exit('No direct script access allowed');
function min_length($str, $val) {
// Load CI instance to be able to load library
$ci =& get_instance();
// Load library
$ci->load->library('form_validation');
if (preg_match("/[^0-9]/", $val)) {
return FALSE;
}
if (function_exists('mb_strlen')) {
if(mb_strlen($str) < $val) {
$ci->form_validation->set_message('custom_min_length', 'You have to write at least ' . $val . ' characters');
return FALSE;
} else {
return TRUE;
}
}
if(strlen($str) < $val) {
$ci->form_validation->set_message('custom_min_length', 'You have to write at least ' . $val . ' characters');
return FALSE;
} else {
return TRUE;
}
}
?>
我沒有得到任何輸出什麼那麼,甚至沒有錯誤消息。我究竟做錯了什麼?
超好的解釋。謝謝! – Robert 2013-05-18 20:54:43