CodeIgniter 表單驗(yàn)證

codeigniter 表單驗(yàn)證

 

驗(yàn)證是構(gòu)建 web 應(yīng)用程序的一個(gè)重要過(guò)程。它確保我們獲得的數(shù)據(jù)是正確和有效的,可以存儲(chǔ)或處理。 codeigniter 使這項(xiàng)任務(wù)變得非常容易。讓我們通過(guò)一個(gè)簡(jiǎn)單的例子來(lái)理解這個(gè)過(guò)程。

 

示例

創(chuàng)建一個(gè)視圖文件 myform.php 并將下面的代碼保存在 application/views/myform.php 中。此頁(yè)面將顯示用戶可以提交姓名的表單,我們將驗(yàn)證此頁(yè)面以確保提交時(shí)它不應(yīng)為空。

  
    
      my form 
   
  
   
                 echo validation_errors();   
          echo form_open('form');   
         name
 
           
         

創(chuàng)建視圖文件 formsuccess.php 并將其保存在 application/views/formsuccess.php 中。如果表單驗(yàn)證成功,將顯示此頁(yè)面。

  
    
      my form     
  
     
      

your form was successfully submitted!

echo anchor('form', 'try it again!');

創(chuàng)建控制器文件 form.php 并將其保存在 application/controller/form.php 中。如果此表單未正確驗(yàn)證或重定向到 formsuccess.php 頁(yè)面,則會(huì)顯示錯(cuò)誤。

  
   class form extends ci_controller { 
  
      public function index() { 
         /* load form helper */ 
         $this--->load->helper(array('form'));
      
         /* load form validation library */ 
         $this->load->library('form_validation');
      
         /* set validation rule for name field in the form */ 
         $this->form_validation->set_rules('name', 'name', 'required'); 
      
         if ($this->form_validation->run() == false) { 
         $this->load->view('myform'); 
         } 
         else { 
            $this->load->view('formsuccess'); 
         } 
      }
   }
?>

在 application/config/routes.php 中添加以下行。

$route['validation'] = 'form';

讓我們通過(guò)在瀏覽器中訪問(wèn)以下 url 來(lái)執(zhí)行此示例。此網(wǎng)址可能因您的網(wǎng)站而異。

http://yoursite.com/index.php/validation

它將產(chǎn)生以下屏幕:

我們?cè)诳刂破髦刑砑恿蓑?yàn)證- name 是提交表單之前的必填字段。因此,如果您點(diǎn)擊提交按鈕而未在名稱字段中輸入任何內(nèi)容,那么您將被要求在提交前輸入名稱,如下面的屏幕所示。

成功輸入名稱后,您將被重定向到如下所示的屏幕。

在上面的示例中,我們使用了所需的規(guī)則設(shè)置。 codeigniter 中有許多可用的規(guī)則,如下所述。

 

驗(yàn)證規(guī)則參考

以下是所有可用的原生規(guī)則列表:

下面給出了最常用的可用原生規(guī)則列表。
規(guī)則 parameters 說(shuō)明 示例

required

no 如果表單元素為空,則返回 false。  

matches

yes 如果表單元素與參數(shù)中的元素不匹配,則返回 false。 matches[form_item]

regex_match

yes 如果表單元素與正則表達(dá)式不匹配,則返回 false。 regex_match[/regex/]

differs

yes 如果表單元素與參數(shù)中的元素沒(méi)有不同,則返回 false。 differs[form_item]

is_unique

yes 如果表單元素對(duì)于參數(shù)中的表和字段名稱不是唯一的,則返回 false。注意-此規(guī)則需要啟用 query builder 才能工作。 is_unique[table.field]

min_length

yes 如果表單元素短于參數(shù)值,則返回 false。 min_length[3]

max_length

yes 如果表單元素長(zhǎng)于參數(shù)值,則返回 false。 max_length[12]

exact_length

yes 如果表單元素不是參數(shù)值,則返回 false。 exact_length[8]

greater_than_equal_to

yes 如果表單元素小于或等于參數(shù)值或不是數(shù)字,則返回 false。 greater_than_equal_to[8]

greater_than_equal_to

yes 如果表單元素小于參數(shù)值或不是數(shù)字,則返回 false。 greater_than_equal_to[8]

less_than

yes 如果表單元素大于或等于參數(shù)值或不是數(shù)字,則返回 false。 less_than[8]

less_than_equal_to

yes 如果表單元素大于參數(shù)值或不是數(shù)字,則返回 false。 less_than_equal_to[8]

in_list

yes 如果表單元素不在預(yù)定列表中,則返回 false。 in_list[red,blue,green]

alpha

no 如果表單元素包含字母字符以外的任何內(nèi)容,則返回 false。  

alpha_numeric

no 如果表單元素包含字母數(shù)字字符以外的任何內(nèi)容,則返回 false。  

alpha_numeric_spaces

no 如果表單元素包含字母數(shù)字字符或空格以外的任何內(nèi)容,則返回 false。應(yīng)該在trim之后使用,以避免在開(kāi)頭或結(jié)尾出現(xiàn)空格  

alpha_dash

no 如果表單元素包含字母數(shù)字字符、下劃線或破折號(hào)以外的任何內(nèi)容,則返回 false。  

numeric

no 如果表單元素包含數(shù)字字符以外的任何內(nèi)容,則返回 false。  

integer

no 如果表單元素包含除整數(shù)以外的任何內(nèi)容,則返回 false。  

decimal

no 如果表單元素包含除十進(jìn)制數(shù)以外的任何內(nèi)容,則返回 false。  

is_natural

no 如果表單元素包含除自然數(shù)以外的任何內(nèi)容-0、1、2、3 等,則返回 false。  

is_natural_no_zero

no 如果表單元素包含自然數(shù)以外的任何內(nèi)容,但不包含零-1、2、3 等,則返回 false。  

valid_url

no 如果表單元素不包含有效的 url,則返回 false。  

valid_email

no 如果表單元素不包含有效的電子郵件地址,則返回 false。  

valid_emails

no 如果逗號(hào)分隔列表中提供的任何值不是有效電子郵件,則返回 false。  

valid_ip

no 如果提供的 ip 無(wú)效,則返回 false。接受"ipv4"或"ipv6"的可選參數(shù)來(lái)指定 ip 格式。  

valid_base64

no 如果提供的字符串包含有效 base64 字符以外的任何內(nèi)容,則返回 false。  

下一節(jié):codeigniter 會(huì)話管理

codeigniter 教程

相關(guān)文章
亚洲国产精品第一区二区,久久免费视频77,99V久久综合狠狠综合久久,国产免费久久九九免费视频