關於CI架構的表單驗證分析

來源:互聯網
上載者:User
這篇文章主要介紹了CI架構表單驗證的方法,結合執行個體形式總結分析了CI架構表單驗證規則設定、錯誤提示、view顯示等相關操作技巧與使用方法,需要的朋友可以參考下

本文執行個體講述了CI架構表單驗證的方法。分享給大家供大家參考,具體如下:

1、form頭部資訊的自動輸出函數(view)

<?php $attributes = array('class' => 'email', 'id' => 'myform'); echo form_open('email/send', $attributes); //上面一行代碼輸出: //<form method="post" accept-charset="utf-8" action="http://example.com/index.php/email/send" id="myform" class="email"/> /* * form_open_multipart() * 函數用法同上,加上了檔案上傳的資訊 上傳方式預設為post */?>

2、設定驗證規則(controller)

<?php//注意驗證規則的變數名必須設定成 config$config = array(        array(           'field'  => 'username',           'label'  => '使用者名稱',           'rules'  => 'required'         ),        array(           'field'  => 'password',           'label'  => '密碼',           'rules'  => 'required'         ),        array(           'field'  => 'passconf',           'label'  => '確認密碼',           'rules'  => 'required|matches[password]'         ),        array(           'field'  => 'tel',           'label'  => '手機',           'rules'  => 'required|integer|exact_length[11]'),        array(           'field'  => 'email',           'label'  => '郵箱',           'rules'  => 'required|valid_email'         )      );//上面的會自動//單獨設定規則$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');?>

3、規則對應的錯誤提示(controller)

<?php$this->form_validation->set_message('required', '必須填寫');$this->form_validation->set_message('valid_email', '不是有效email');?>

4、運行檢查錯誤資訊(controller)

<?php $this->load->helper(array('form', 'url')); //載入CI表單驗證庫 $this->load->library('form_validation'); //---------------------------------------- # 驗證規則及錯誤資訊代碼放在這裡 //---------------------------------------- if ($this->form_validation->run() == FALSE){   //提交失敗 重新載入表單部分   $this->load->view('myform'); }else{   //提交成功 表單處理   //跳轉成功頁面   $this->load->view('formsuccess'); }}

5、錯誤資訊的輸出函數(view)

<?php  //1.一股腦兒的全部輸出(放在表單標籤的上方即可)  echo validation_errors();  //2.針對單個表單單獨輸出(放在單個標籤附近 參數為對應表單元素的網域名稱)  echo form_error('password');  //3.針對單個表單輸出的時候 需要修改定界符 顯示錯誤資訊樣式(控制器裡設定)  $this->form_validation->set_error_delimiters('<span class="error">', '</span>');  //設定成內嵌元素比較好?>

6、錯誤後 重新回填表單(view)

<?php //一般元素 回填(放在標籤的values屬性中輸出) echo set_value('email'); //特殊元素select/checkbox/radio 第三個參數為true時 預設被選中 //第二個參數 是對應的表單元素的實際值 echo set_select('myselect', 'three'); //放在option的空白屬性裡 echo set_checkbox('mycheck[]', '1'); //放在checkbox的空白屬性裡 echo set_radio('myradio', '2');    //放在radio的空白屬性裡?>

html代碼:

<html> <head>  <title>My Form</title> </head><body> <?php echo validation_errors(); ?> <?php echo form_open('form'); ?>  <h5>Username</h5>  <input type="text" name="username" value="<?php echo set_value('username'); ?>" size="50" />  <?php echo form_error('username'); ?>  <h5>Password</h5>  <input type="text" name="password" value="<?php echo set_value('password'); ?>" size="50" />  <?php echo form_error('password'); ?>  <h5>Password Confirm</h5>  <input type="text" name="passconf" value="<?php echo set_value('passconf'); ?>" size="50" />  <?php echo form_error('passconf'); ?>  <h5>Email Address</h5>  <input type="text" name="email" value="<?php echo set_value('email'); ?>" size="50" />  <?php echo form_error('email'); ?>  <p><input type="submit" value="Submit" /></p></form></body></html>

以上就是本文的全部內容,希望對大家的學習有所協助,更多相關內容請關注topic.alibabacloud.com!

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.