正文:
在PHP開發中,我們常常需要處理表單提交的數據。CodeIgniter框架提供了一個非常方便的方法來處理表單數據,就是輸入類(Input Class)。這個類具有實現制定輸入規則、安全性過濾、數據驗證等多種功能的特點。
使用輸入類的首要步驟是加載該類,可以在控制器中使用如下代碼實現:
$this->load->library('input');
此時便可以在控制器中使用Input類提供的各種方法。
獲取表單數據
從表單中獲取數據是常見的需求,可以使用以下方法:
- get($index = NULL, $xss_clean = NULL)
此方法可以獲取表單提交中的GET數據。如果$index參數為空,該方法返回所有的GET數據。如果$index參數指定了對應的變量名稱,則返回對應變量值。如果$xss_clean參數設置為TRUE,則進行清洗數據,以避免XSS攻擊。
舉個例子:
假設有一個表單,其中包含一個文本輸入框(名稱為username),用戶輸入了以下內容:John "the Hammer" Doe
則可以使用以下代碼獲取其中的username值:$username = $this->input->get('username', TRUE);
在獲取的過程中,同時將$xss_clean設置為TRUE,可以避免XSS攻擊:
- post($index = NULL, $xss_clean = NULL)
該方法可以獲取表單提交中的POST數據。參數用法同上。
再以一個例子說明:
假設有一個表單,其中包含兩個文本輸入框(名稱分別為username和password),用戶分別輸入了以下內容:username: John
password: abc123
則可以使用以下代碼獲取其中的username和password值:$username = $this->input->post('username', TRUE);
$password = $this->input->post('password', TRUE);
獲取HTTP頭信息
除了表單數據外,需要獲取HTTP頭信息的情況也經常出現,此時可以使用以下方法:
- request_headers()
該方法返回所有的HTTP頭信息,以一個數組的形式返回。
根據需要,也可以使用以下三個方法分別獲取對應的HTTP頭信息:
- get_request_header($header, $xss_clean = NULL)
- get_user_agent($xss_clean = NULL)
- get_client_ip($xss_clean = NULL)
以上方法分別用于獲取指定HTTP頭信息、獲取當前用戶代理信息和獲取當前客戶端IP地址。
輸入數據的檢驗
在獲取表單數據時,需要保證數據的有效性。如果使用非法的數據,將會導致系統異常或者用戶體驗下降。Input類提供了以下方法來檢驗輸入數據:
- post($index = NULL, $xss_clean = NULL)
該方法用于檢驗表單提交的數據是否符合要求。如果$index參數指定了對應的變量名稱,則返回對應變量值(如果符合規則)。如果不符合規則,則返回FALSE。
這里以檢驗身份證號碼為例:$this->form_validation->set_rules('id_number', 'ID Number', 'required|regex_match[/^(\d{15}|\d{18})$/]');
if ($this->form_validation->run() == FALSE) {
// 數據不合法
} else {
// 數據合法
$id_number = $this->input->post('id_number');
}
在上面的例子中,使用了CodeIgniter框架提供的表單驗證類(Form Validation Class)來驗證身份證號碼是否符合要求,然后通過Input類獲取數據。
總結
以上是Input類提供的一些常用方法。通過此類,可以非常方便地處理表單數據,包括獲取數據、檢驗數據等。這將極大地方便開發人員在使用CodeIgniter框架進行PHP開發時的工作效率,加快代碼開發進程,提高代碼質量和安全性。