亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

目錄 搜尋
歡迎 目錄 快速參考圖 基本信息 服務器要求 許可協議 變更記錄 關于CodeIgniter 安裝 下載 CodeIgniter 安裝指導 從老版本升級 疑難解答 介紹 開始 CodeIgniter 是什么? CodeIgniter 速記表 支持特性 應用程序流程圖 模型-視圖-控制器 架構目標 教程 內容提要 加載靜態(tài)內容 創(chuàng)建新聞條目 讀取新聞條目 結束語 常規(guī)主題 CodeIgniter URL 控制器 保留字 視圖 模型 輔助函數 使用 CodeIgniter 類庫 創(chuàng)建你自己的類庫 使用 CodeIgniter 適配器 創(chuàng)建適配器 創(chuàng)建核心系統(tǒng)類 鉤子 - 擴展框架的核心 自動裝載資源 公共函數 URI 路由 錯誤處理 緩存 調試應用程序 以CLI方式運行 管理應用程序 處理多環(huán)境 PHP替代語法 安全 開發(fā)規(guī)范 類庫參考 基準測試類 日歷類 購物車類 配置類 Email 類 加密類 文件上傳類 表單驗證詳解 FTP 類 圖像處理類 輸入類 Javascript 類 語言類 裝載類 遷移類 輸出類 分頁類 模板解析器類 安全類 Session 類 HTML 表格類 引用通告類 排版類 單元測試類 URI 類 User-Agent 類 表單驗證 XML-RPC 和 XML-RPC 服務器 Zip 編碼類 緩存適配器 適配器參考 適配器 數據庫類 Active Record 類 數據庫緩存類 自定義函數調用 數據庫配置 連接你的數據庫 數據庫快速入門例子代碼 字段數據 數據庫維護類 查詢輔助函數 數據庫類 查詢 生成查詢記錄集 表數據 事務 數據庫工具類 JavaScript類 輔助函數參考 數組輔助函數 CAPTCHA 輔助函數 Cookie Helper 日期輔助函數 目錄輔助函數 下載輔助函數 Email 輔助函數 文件輔助函數 表單輔助函數 HTML輔助函數 Inflector 輔助函數 語言輔助函數 數字輔助函數 路徑輔助函數 安全輔助函數 表情輔助函數 字符串輔助函數 文本輔助函數 排版輔助函數 URL 輔助函數 XML 輔助函數
文字

CodeIgniter 用戶指南 版本 2.1.0

編輯文檔、查看近期更改請 登錄 或 注冊  找回密碼
查看原文

表單驗證詳解

CodeIgniter 提供了一個全面的表單驗證和數據預處理類以幫助縮減你所寫的代碼。

  • 概述
  • 表單驗證指南
    • 表單
    • 成功頁面
    • 控制器
    • 設置驗證規(guī)則
    • 使用一個數組設置驗證規(guī)則
    • 級聯規(guī)則(Cascading Rules)
    • 預處理數據(Prepping Data)
    • 重新填充表單(Re-populating the Form)
    • 回調
    • 設置錯誤信息
    • 更改錯誤定界符
    • 翻譯表單域名字
    • 獨立顯示錯誤
    • 將一系列驗證規(guī)則保存到一個配置文件
    • 使用數組作為表單域名字
  • 規(guī)則參考
  • 預處理參考
  • 函數參考
  • 輔助函數參考

?

概述

在解釋 CodeIgniter 的數據驗證處理之前,讓我們先描述一下一般的情況:

  1. 一個表單顯示了。
  2. 你填寫并提交了它。
  3. 如果你提交了一些無效的信息,或者可能漏掉了一個必填項,表單將會連同你的數據和錯誤問題的描述信息重新顯示。
  4. 這個過程將繼續(xù),直到你提交了一個有效的表單。

在接收端,腳本必須:

  1. 檢查必須的數據。
  2. 驗證數據是否為正確的類型,合適的標準。例如,如果一個用戶名被提交,它必須被驗證是否只包含了允許的字符。它必須有一個最小長度,不能超過最大長度。用戶名不能是已存在的他人用戶名,或者甚至是一個保留字等。
  3. 清理數據使其安全。
  4. 如果需要,預格式化數據(數據需要清除空白嗎?經過 HTML 編碼?等。)
  5. 準備數據,插入數據庫。

盡管上面的過程并不是很復雜,但是通常需要編寫很多代碼,而且為了顯示錯誤信息,在網頁中經常要使用多種不同的控制結構。創(chuàng)建表單驗證雖簡單,實施起來卻也枯燥無味。

?

表單驗證指南

下面是如何實施CodeIgniter表單驗證的一個簡易教程

為了進行表單驗證,你需要這三樣東西:

  1. 一個包含表單的 視圖 文件。
  2. 一個包含“成功”信息的視圖文件,在成功提交后將被顯示。
  3. 一個接收并處理所提交數據的 控制器 函數。

讓我們以一個會員注冊表單為例來創(chuàng)建這三個玩意。

表單

使用一個文本編輯器,創(chuàng)建一個名叫 myform.php 的表單。在它里面放上這些代碼并把它保存到你的 applications/views/ 文件夾中:

成功頁面

使用一個文本編輯器,創(chuàng)建一個名叫 formsuccess.php 的表單。在它里面放上這些代碼并保存到你的 applications/views/ 文件夾:

控制器

使用一個文本編輯器,創(chuàng)建一個名叫 form.php 的控制器。在它里面,放上這些代碼并保存到你的 applications/controllers/ 文件夾:

Try it!

要測試你的表單,請使用類似這樣的URL訪問你的網站:

example.com/index.php/form/

如果你提交表單你只會看到表單重新加載了。這是因為你還沒有設置驗證規(guī)則。

由于你還沒有告訴表單驗證類驗證什么東西。它只是默認的返回了 FALSE (boolean false) 。 run() 方法只在全部成功匹配了你的規(guī)則才會返回 TRUE 。

解析

你會注意到在此頁上面的幾點:

表單 (myform.php) 是一個標準的Web表單,除了以下兩點:

  1. 它使用一個 表單輔助函數 創(chuàng)建表單開始。 技術上,這并非必要。你可以使用標準的HTMl來創(chuàng)建,然而,使用輔助函數的好處是它為你生成了基于你配置文件中的URL的 action URL。這使得你的應用在更改URL時更具移植性。
  2. 在表單的頂端你將注意到如下函數調用: <?php echo validation_errors(); ?>

    這個函數將會返回驗證器送回的所有錯誤信息。如果沒有錯誤信息,它將返回空字符串。

控制器 (form.php) 有一個方法: index()。這個方法初始化驗證類并加載你視圖中用到的 表單輔助函數URL 輔助函數 它也會 運行 驗證程序?;隍炞C是否成功,它會重現表單或顯示成功頁面。

設置驗證規(guī)則

CodeIgniter允許你為單個表單域創(chuàng)建多個驗證規(guī)則,按順序層疊在一起,你甚至可以同時預先處理表單域數據。要設置驗證規(guī)則請使用set_rules() 函數:

$this->form_validation->set_rules();

上面的函數使用 三個 參數作為輸入:

  1. 表單域的名字 - 就是你給表單域取的那個名字。
  2. 一個此表單域的 "人性化" 名字,它將被插入到錯誤信息中。例如,如果你有一個表單域叫做“user”你可能給它一個人性化名字叫做“用戶名”。 注意: 如果你想讓表單域的名字保存在一個語言文件里,請參考 翻譯表單域名字.
  3. 為此表單域設置的驗證規(guī)則。


這兒有一個示例。在你的 控制器 (form.php) 中緊接著驗證初始化函數之后,添加這段代碼:

$this->form_validation->set_rules('username', 'Username', 'required');
$this->form_validation->set_rules('password', 'Password', 'required');
$this->form_validation->set_rules('passconf', 'Password Confirmation', 'required');
$this->form_validation->set_rules('email', 'Email', 'required');

你的控制器現在看起來像這樣:

現在留空表單域提交表單你會看到錯誤信息。 如果你填充所有的表單域提交表單你會看到成功頁。

注意: 出現錯誤時表單域并沒有被使用數據重新填充。稍后我們去搞這個。

使用一個數組設置驗證規(guī)則

繼續(xù)之前請注意,如果你更喜歡通過一個操作設置所有規(guī)則的話,向規(guī)則設定函數傳遞的可以是一個數組。 如果你想用這個方式,你必須這樣命名你的數組鍵:

$config = array(
???????????????array(
?????????????????????'field'???=> 'username',
?????????????????????'label'???=> 'Username',
?????????????????????'rules'???=> 'required'
??????????????????),
???????????????array(
?????????????????????'field'???=> 'password',
?????????????????????'label'???=> 'Password',
?????????????????????'rules'???=> 'required'
??????????????????),
???????????????array(
?????????????????????'field'???=> 'passconf',
?????????????????????'label'???=> 'Password Confirmation',
?????????????????????'rules'???=> 'required'
??????????????????),???
???????????????array(
?????????????????????'field'???=> 'email',
?????????????????????'label'???=> 'Email',
?????????????????????'rules'???=> 'required'
??????????????????)
????????????);

$this->form_validation->set_rules($config);

級聯規(guī)則(Cascading Rules)

CodeIgniter 允許你將多個規(guī)則連接在一起。讓我們試一試。修改規(guī)則設置函數中的第三個參數,如下:

$this->form_validation->set_rules('username', 'Username', 'required|min_length[5]|max_length[12]|is_unique[users.username]');
$this->form_validation->set_rules('password', 'Password', 'required|matches[passconf]');
$this->form_validation->set_rules('passconf', 'Password Confirmation', 'required');
$this->form_validation->set_rules('email', 'Email', 'required|valid_email|is_unique[users.email]');

上面的代碼設置了一組規(guī)則:

  1. 用戶名表單域長度不得小于5個字符以及大于12個字符。
  2. 密碼表單域必須跟密碼確認表單域的數據一致。
  3. 電子郵件表單域必須是一個有效郵件地址。

馬上試試看!提交不合法的數據后你會看到新的錯誤信息跟你設置的新規(guī)則相符。在驗證參考頁中你可以閱讀到更多規(guī)則。

預處理數據

作為上面使用的驗證函數的附加,你也可以以多種方式預處理你的數據。 例如,你可以設置像這樣的規(guī)則:

$this->form_validation->set_rules('username', 'Username', 'trim|required|min_length[5]|max_length[12]|xss_clean');
$this->form_validation->set_rules('password', 'Password', 'trim|required|matches[passconf]|md5');
$this->form_validation->set_rules('passconf', 'Password Confirmation', 'trim|required');
$this->form_validation->set_rules('email', 'Email', 'trim|required|valid_email');

在上面的例子里,我們“修整(trimming,去掉字符串兩端空白)”了數據,轉換密碼為MD5,將用戶名通過“xss_clean”函數處理去掉了有害數據。

任何PHP自身接收一個參數的函數都可以被用作一個規(guī)則,比如 htmlspecialchars, trim, MD5, 等。

注意: 你一般會在驗證規(guī)則之后使用這些預處理功能,這樣如果發(fā)生錯誤,原數據將會被顯示在表單。

重新填充表單(Re-populating the form)

目前為止我們只處理了錯誤。是使用提交的數據重填表單的時候了。CodeIgniter 為此提供了幾個輔助函數。你最常用到的一個是:

set_value('field name')

打開 myform.php 視圖文件并使用 set_value() 函數更新每個表單域的

不要忘記在set_value()函數中包含每個表單域的名字!

現在刷新你的頁面并提交表單產生一個錯誤。你的表單域應該被重新填寫了。

注意: 下面的 函數參考 節(jié)包含了可以讓你重填下拉菜單,單選框和復選框的函數

重要提示: 如果你使用一個數組作為一個表單域的名字,你必須為函數提供給它一個數組。例如:

<input type="text" name="colors[]" value="<?php echo set_value('colors[]'); ?>" size="50" />

更多信息請參考下面的 使用數組作為表單域名字 一節(jié)。

回調: 你自己的驗證函數

驗證系統(tǒng)提供了向你自己驗證函數的回調。這是你可以擴展驗證類以適應你的需求。例如,如果你需要執(zhí)行一個數據庫查詢來檢查用戶是否選擇了一個唯一的用戶名,你可以創(chuàng)建一個回調函數做這個。咱們建個例子。

在你的控制器中,修改“username”為:

$this->form_validation->set_rules('username', 'Username', 'callback_username_check');

然后在你的控制器中添加一個新的函數名叫 username_check 。你的控制器現在看起來是這樣:

重新載入表單并以“test”作為用戶名提交數據,你會看到表單域數據傳遞到回調函數中供你處理。

要調用一個回調函數只需把函數名加一個"callback_"前綴并放在驗證規(guī)則里。如果你需要在你的回調函數中調用一個額外的參數,你只需要在回調函數后面用[]把參數括起來, 例如: "callback_foo[bar]", 其中bar將成為你的回調函數中的第二個參數.【譯者注:第一個參數是input的value值】

注意:你也可以處理并返回傳遞給你的回調函數中的表單數據。如果你的回調函數返回了除布爾型的TRUE/FALSE外的任何值,它將被假定數據是你新處理過的表單數據。

設置錯誤信息

所有自身的錯誤信息位于下面的語言文件中:language/english/form_validation_lang.php

要設置你的自定義信息你可以編輯那個文件,或使用下面的函數:

$this->form_validation->set_message('rule', 'Error Message');

其中 rule 是該條定義規(guī)則的名稱,Error Message 該規(guī)則會顯示的錯誤文本。

如果你在錯誤信息中包含了 %s,它將插入顯示出你在表單域中設置的別名。

In the "callback" example above, the error message was set by passing the name of the function:

在上面回調的例子中,, 錯誤信息是通過傳送函數名稱返回的:

$this->form_validation->set_message('username_check')

You can also override any error message found in the language file. For example, to change the message for the "required" rule you will do this:

你也可以重寫語言文件中的錯誤信息. 例如, 你可以這么做來改變"required" 規(guī)則的信息:

$this->form_validation->set_message('required', 'Your custom message here');

翻譯表單域名稱

如果你希望將傳遞給 set_rules() 函數的自然語言參數存儲在一個語言文件中——使他們有一個或多個翻譯版本,你可以這么做:

首先,給當前表單域自定義一個key值(通常就是表單標簽的name),然后添加上lang:前綴,如下:

$this->form_validation->set_rules('first_name', 'lang:first_name', 'required');

然后,以如下語言數組(數組的key值不必包含lang前綴)的形式保存在你的語言文件中:

$lang['first_name'] = 'First Name';

注意: 開發(fā)者自定義的語言文件數組(如上例)不會自動被CI加載,你需要在控制器中手動加載:

$this->lang->load('file_name');

關于語言文件的具體設置和加載請參考 語言類 說明。

更改錯誤定界符

在默認情況下,表單驗證類會使用 (<p>) 標簽來分割每條錯誤信息,以達到分段效果。你可以自行對其進行定義。

  1. 定界符統(tǒng)一更改

    如果需要全局更改錯誤定界符, 可以在你的控制器中,在表單驗證類加載之后添加如下代碼:

    $this->form_validation->set_error_delimiters('<div class="error">', '</div>');

    在此例中,我們將定界符由系統(tǒng)默認的 <p> 更改為一個div標簽。

  2. 定界符單獨更改

    表單驗證類所提供的兩種顯示錯誤驗證信息的函數,分別可以通過如下方法來設置它們的定界符:

    <?php echo form_error('field name', '<div class="error">', '</div>'); ?>

    或者:

    <?php echo validation_errors('<div class="error">', '</div>'); ?>

獨立顯示錯誤

如果你喜歡緊挨著每個表單域顯示錯誤信息而不是顯示為一個列表,你可以使用 form_error() 函數。

試一下!更改你的表單代碼為下面這樣:

如果沒有錯誤信息,將不會顯示。如有錯誤信息,會在輸入框旁單獨顯示。

注意: 如果你的表單域名稱使用的是數組形式,你必須提供該完整的數組函數。 例如:

<?php echo form_error('options[size]'); ?>
<input type="text" name="options[size]" value="<?php echo set_value("options[size]"); ?>" size="50" />

如要了解更多,請參閱 使用數組作為表單字段名稱 。

?

將一系列驗證規(guī)則保存到一個配置文件

表單驗證類的一個超拽的特性是它允許你將整個應用的所有驗證規(guī)則存儲到一個配置文件中。你可以組織這些規(guī)則到“組”里。這些組既可以在符合controller/function的調用時自動加載,也可以在用到時你手動調用。

怎樣保存你的規(guī)則

如果想要將驗證規(guī)則保存在獨立的文件中,你首先需要在 application/config/ 文件夾下創(chuàng)建一個名稱為 form_validation.php的文件。 然后,將驗證規(guī)則的配置信息保存在數組 $config 中即可,具體格式如下:

$config = array(
???????????????array(
?????????????????????'field'???=> 'username',
?????????????????????'label'???=> 'Username',
?????????????????????'rules'???=> 'required'
??????????????????),
???????????????array(
?????????????????????'field'???=> 'password',
?????????????????????'label'???=> 'Password',
?????????????????????'rules'???=> 'required'
??????????????????),
???????????????array(
?????????????????????'field'???=> 'passconf',
?????????????????????'label'???=> 'Password Confirmation',
?????????????????????'rules'???=> 'required'
??????????????????),???
???????????????array(
?????????????????????'field'???=> 'email',
?????????????????????'label'???=> 'Email',
?????????????????????'rules'???=> 'required'
??????????????????)
????????????);

當用戶觸發(fā) run() 函數時,你的驗證規(guī)則會自動被控制器加載和調用。

注意:請務必要將數組名稱定義成 $config.

創(chuàng)建多組驗證規(guī)則

為了創(chuàng)建多組驗證規(guī)則,我們需要將它們放置到子數組中。請參考下面的例子,在此例中我們設置了兩組規(guī)則,組名稱分別是 "signup" 和 "email"。 當然,在實際開發(fā)中,你可以根據自己的需求任意命名:

$config = array(
?????????????????'signup' => array(
????????????????????????????????????array(
????????????????????????????????????????????'field' => 'username',
????????????????????????????????????????????'label' => 'Username',
????????????????????????????????????????????'rules' => 'required'
?????????????????????????????????????????),
????????????????????????????????????array(
????????????????????????????????????????????'field' => 'password',
????????????????????????????????????????????'label' => 'Password',
????????????????????????????????????????????'rules' => 'required'
?????????????????????????????????????????),
????????????????????????????????????array(
????????????????????????????????????????????'field' => 'passconf',
????????????????????????????????????????????'label' => 'PasswordConfirmation',
????????????????????????????????????????????'rules' => 'required'
?????????????????????????????????????????),
????????????????????????????????????array(
????????????????????????????????????????????'field' => 'email',
????????????????????????????????????????????'label' => 'Email',
????????????????????????????????????????????'rules' => 'required'
?????????????????????????????????????????)
????????????????????????????????????),
?????????????????'email' => array(
????????????????????????????????????array(
????????????????????????????????????????????'field' => 'emailaddress',
????????????????????????????????????????????'label' => 'EmailAddress',
????????????????????????????????????????????'rules' => 'required|valid_email'
?????????????????????????????????????????),
????????????????????????????????????array(
????????????????????????????????????????????'field' => 'name',
????????????????????????????????????????????'label' => 'Name',
????????????????????????????????????????????'rules' => 'required|alpha'
?????????????????????????????????????????),
????????????????????????????????????array(
????????????????????????????????????????????'field' => 'title',
????????????????????????????????????????????'label' => 'Title',
????????????????????????????????????????????'rules' => 'required'
?????????????????????????????????????????),
????????????????????????????????????array(
????????????????????????????????????????????'field' => 'message',
????????????????????????????????????????????'label' => 'MessageBody',
????????????????????????????????????????????'rules' => 'required'
?????????????????????????????????????????)
????????????????????????????????????)??????????????????????????
???????????????);

調用某組驗證規(guī)則

當同時存在多組規(guī)則時,為了調用某一組規(guī)則,你需要將組的名字傳遞給 run() 函數。 比如, 要調用上例中"signup"組下面的規(guī)則,你應該這么做:

if ($this->form_validation->run('signup') == FALSE)
{
???$this->load->view('myform');
}
else
{
???$this->load->view('formsuccess');
}

將控制器和驗證組關聯在一起

調用某一特定驗證規(guī)則組的另一方法(更自動化):將規(guī)則組的名稱定義為你要關聯的控制器類/函數(class/function)名稱。舉例來說,假設你有一個控制器名稱叫做 Member,它下面有個函數叫做 signup。那么,你的控制器可能會這么寫:

<?php

class Member extends CI_Controller {

???function signup()
???{??????
??????$this->load->library('form_validation');
????????????
??????if ($this->form_validation->run() == FALSE)
??????{
?????????$this->load->view('myform');
??????}
??????else
??????{
?????????$this->load->view('formsuccess');
??????}
???}
}
?>

在你的驗證配置文件中,你需要將你的規(guī)則組命名為member/signup,形如:

$config = array(
???????????'member/signup' => array(
????????????????????????????????????array(
????????????????????????????????????????????'field' => 'username',
????????????????????????????????????????????'label' => 'Username',
????????????????????????????????????????????'rules' => 'required'
?????????????????????????????????????????),
????????????????????????????????????array(
????????????????????????????????????????????'field' => 'password',
????????????????????????????????????????????'label' => 'Password',
????????????????????????????????????????????'rules' => 'required'
?????????????????????????????????????????),
????????????????????????????????????array(
????????????????????????????????????????????'field' => 'passconf',
????????????????????????????????????????????'label' => 'PasswordConfirmation',
????????????????????????????????????????????'rules' => 'required'
?????????????????????????????????????????),
????????????????????????????????????array(
????????????????????????????????????????????'field' => 'email',
????????????????????????????????????????????'label' => 'Email',
????????????????????????????????????????????'rules' => 'required'
?????????????????????????????????????????)
????????????????????????????????????)
???????????????);

當驗證規(guī)則組的名稱符合”控制器類名稱/函數名稱“(class/function)條件時,那么在 run() 函數被執(zhí)行時,它所對應的規(guī)則會自動被調用。

?

使用數組作為表單字段名稱

表單驗證類支持表單字段的名稱為數組,比如:

<input type="text" name="options[]" value="" size="50" />

如果你將表單字段名稱定義為數組,那么在使用 Helper函數時,你必須傳遞給他們與字段名稱一樣的數組名。對應此表單字段的驗證規(guī)則也同樣遵循此規(guī)則。

比如,在設置此類表單字段時,你可能會用到:

$this->form_validation->set_rules('options[]', 'Options', 'required');

或者,在顯示此類表單字段的驗證錯誤信息時,你需要使用:

<?php echo form_error('options[]'); ?>

同樣的,在預填充此字段的值時使用:

<input type="text" name="options[]" value="<?php echo set_value('options[]'); ?>" size="50" />

你還可以使用多維數組作為表單字段的名稱,比如

<input type="text" name="options[size]" value="" size="50" />

甚至使用:

<input type="text" name="sports[nba][basketball]" value="" size="50" />

和上個例子一樣,在helper函數中,你必須使用同樣的名稱:

<?php echo form_error('sports[nba][basketball]'); ?>

如果你選擇使用那些支持多個選項的表單字段,比如checkbox,別忘了在名稱之后加上空的方括號。只有這樣,當用戶提交表單時,所有的選項值就會被添加到 POST 數組當中:

<input type="checkbox" name="options[]" value="red" />
<input type="checkbox" name="options[]" value="blue" />
<input type="checkbox" name="options[]" value="green" />

或者你使用的時多維數組:

<input type="checkbox" name="options[color][]" value="red" />
<input type="checkbox" name="options[color][]" value="blue" />
<input type="checkbox" name="options[color][]" value="green" />

當你使用helper函數時,也同樣需要添加方括號:

<?php echo form_error('options[color][]'); ?>

?

規(guī)則參數列表

以下列表將列出可被使用的原生規(guī)則

規(guī)則 參數 描述 舉例
required No 如果元素為空,則返回FALSE ?
matches Yes 如果表單元素的值與參數中對應的表單字段的值不相等,則返回FALSE matches[form_item]
is_unique Yes Returns FALSE if the form element is not unique to the table and field name in the parameter. is_unique[table.field]
min_length Yes 如果表單元素值的字符長度少于參數中定義的數字,則返回FALSE min_length[6]
max_length Yes 如果表單元素值的字符長度大于參數中定義的數字,則返回FALSE max_length[12]
exact_length Yes 如果表單元素值的字符長度與參數中定義的數字不符,則返回FALSE exact_length[8]
greater_than Yes Returns FALSE if the form element is less than the parameter value or not numeric. greater_than[8]
less_than Yes Returns FALSE if the form element is greater than the parameter value or not numeric. less_than[8]
alpha No 如果表單元素值中包含除字母以外的其他字符,則返回FALSE ?
alpha_numeric No 如果表單元素值中包含除字母和數字以外的其他字符,則返回FALSE ?
alpha_dash No 如果表單元素值中包含除字母/數字/下劃線/破折號以外的其他字符,則返回FALSE ?
numeric No 如果表單元素值中包含除數字以外的字符,則返回 FALSE ?
integer No 如果表單元素中包含除整數以外的字符,則返回FALSE ?
decimal Yes Returns FALSE if the form element is not exactly the parameter value. ?
is_natural No 如果表單元素值中包含了非自然數的其他數值 (其他數值不包括零),則返回FALSE。自然數形如:0,1,2,3....等等。 ?
is_natural_no_zero No 如果表單元素值包含了非自然數的其他數值 (其他數值包括零),則返回FALSE。非零的自然數:1,2,3.....等等。 ?
valid_email No 如果表單元素值包含不合法的email地址,則返回FALSE ?
valid_emails No 如果表單元素值中任何一個值包含不合法的email地址(地址之間用英文逗號分割),則返回FALSE。 ?
valid_ip No 如果表單元素的值不是一個合法的IP地址,則返回FALSE。 ?
valid_base64 No 如果表單元素的值包含除了base64 編碼字符之外的其他字符,則返回FALSE。 ?

注意: 這些規(guī)則也可以作為獨立的函數. 例如:

$this->form_validation->required($string);

注意: 你也可以用適合參數的本地PHP系統(tǒng)函數.

?

過濾函數

下面是可用的過濾函數:

名稱 參數 功能描述
xss_clean No 通過 XSS 過濾函數來運行數據, 詳細說明見 Input 類.
prep_for_form No 將特殊字符的轉換,以便可以在表單域中顯示 HTML 數據,而不會破壞它。.
prep_url No 當URL丟失"http://" 時,添加"http://".
strip_image_tags No Strips the HTML from image tags leaving the raw URL.
encode_php_tags No Converts PHP tags to entities.

Note: You can also use any native PHP functions that permit one parameter, like trim, htmlspecialchars, urldecode, etc.

?

函數(方法)參考

下面的這些方法是讓你在控制器里使用的。

$this->form_validation->set_rules();

允許您設置驗證規(guī)則,如在本教程上面的章節(jié)中描述的:

  • 設置驗證規(guī)則
  • 將一系列驗證規(guī)則保存到一個配置文件

$this->form_validation->run();

運行驗證程序。成功返回TRUE,失敗返回FALSE。您可以選擇通過功能驗證組的名稱,例如:將一系列驗證規(guī)則保存到一個配置文件.

$this->form_validation->set_message();

允許您設置自定義錯誤消息。看上面的設置錯誤信息

?

輔助函數參考

以下函數在調用form時自動加載無需手動載入。The following helper functions are available for use in the view files containing your forms. Note that these are procedural functions, so they do not require you to prepend them with $this->form_validation.【譯者注:所有使用下列函數的表單項都必須有驗證規(guī)則,規(guī)則可以為''或者為簡單的trim函數,不可為NULL

form_error()

Shows an individual error message associated with the field name supplied to the function. Example:

<?php echo form_error('username'); ?>

The error delimiters can be optionally specified. See the 更改錯誤定界符 section above.

validation_errors()

Shows all error messages as a string: Example:

<?php echo validation_errors(); ?>

The error delimiters can be optionally specified. See the 更改錯誤定界符 section above.

set_value()

Permits you to set the value of an input form or textarea. You must supply the field name via the first parameter of the function. The second (optional) parameter allows you to set a default value for the form. Example:

<input type="text" name="quantity" value="<dfn><?php echo set_value('quantity', '0'); ?></dfn>" size="50" />

The above form will show "0" when loaded for the first time.

set_select()

If you use a <select> menu, this function permits you to display the menu item that was selected. The first parameter must contain the name of the select menu, the second parameter must contain the value of each item, and the third (optional) parameter lets you set an item as the default (use boolean TRUE/FALSE).

Example:

<select name="myselect">
<option value="one" <?php echo set_select('myselect', 'one', TRUE); ?> >One</option>
<option value="two" <?php echo set_select('myselect', 'two'); ?> >Two</option>
<option value="three" <?php echo set_select('myselect', 'three'); ?> >Three</option>
</select>

控制器:$this->form_validation->set_rules('myselect');???//thinkPod 編輯于 2011-08-09

set_checkbox()

Permits you to display a checkbox in the state it was submitted. The first parameter must contain the name of the checkbox, the second parameter must contain its value, and the third (optional) parameter lets you set an item as the default (use boolean TRUE/FALSE). Example:

<input type="checkbox" name="mycheck[]" value="1" <?php echo set_checkbox('mycheck[]', '1'); ?> />
<input type="checkbox" name="mycheck[]" value="2" <?php echo set_checkbox('mycheck[]', '2'); ?> />

set_radio()

Permits you to display radio buttons in the state they were submitted. This function is identical to the set_checkbox() function above.

此函數與set_checkbox()函數相同, 用來顯示單選按鈕被選中的狀態(tài)。。

<input type="radio" name="myradio" value="1" <?php echo set_radio('myradio', '1', TRUE); ?> />
<input type="radio" name="myradio" value="2" <?php echo set_radio('myradio', '2'); ?> />

?

翻譯貢獻者: 739122706, as3291363, baiyuxiong, carboo, cnsaturn, dimitry, Fanbin, goocarlos, Hex, huangnaiang, IT不倒翁, mchipengfei, niudongwei, rockey329, skidu, soyota, wangyueqiang, wnpers, xgdd1987, yuwen002, 上官元恒, 我是我, 暗夜星辰, 籠中
最后修改: 2012-05-07 16:49:23
上一篇: 下一篇: