溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

CI框架如何實現(xiàn)表單驗證

發(fā)布時間:2021-09-01 11:18:30 來源:億速云 閱讀:126 作者:小新 欄目:開發(fā)技術(shù)

這篇文章給大家分享的是有關(guān)CI框架如何實現(xiàn)表單驗證的內(nèi)容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。

具體如下:

1、form頭部信息的自動輸出函數(shù)(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()
 * 函數(shù)用法同上,加上了文件上傳的信息 上傳方式默認為post
 */
?>

2、設(shè)置驗證規(guī)則(controller)

<?php
//注意驗證規(guī)則的變量名必須設(shè)置成 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'
         )
      );
//上面的會自動
//單獨設(shè)置規(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');
?>

3、規(guī)則對應的錯誤提示(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');
 //----------------------------------------
 # 驗證規(guī)則及錯誤信息代碼放在這里
 //----------------------------------------
 if ($this->form_validation->run() == FALSE){
   //提交失敗 重新加載表單部分
   $this->load->view('myform');
 }else{
   //提交成功 表單處理
   //跳轉(zhuǎn)成功頁面
   $this->load->view('formsuccess');
 }
}

5、錯誤信息的輸出函數(shù)(view)

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

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

<?php
 //一般元素 回填(放在標簽的values屬性中輸出)
 echo set_value('email');
 //特殊元素select/checkbox/radio 第三個參數(shù)為true時 默認被選中
 //第二個參數(shù) 是對應的表單元素的實際值
 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'); ?>
  <h6>Username</h6>
  <input type="text" name="username" value="<?php echo set_value('username'); ?>" size="50" />
  <?php echo form_error('username'); ?>
  <h6>Password</h6>
  <input type="text" name="password" value="<?php echo set_value('password'); ?>" size="50" />
  <?php echo form_error('password'); ?>
  <h6>Password Confirm</h6>
  <input type="text" name="passconf" value="<?php echo set_value('passconf'); ?>" size="50" />
  <?php echo form_error('passconf'); ?>
  <h6>Email Address</h6>
  <input type="text" name="email" value="<?php echo set_value('email'); ?>" size="50" />
  <?php echo form_error('email'); ?>
  <div><input type="submit" value="Submit" /></div>
</form>
</body>
</html>

感謝各位的閱讀!關(guān)于“CI框架如何實現(xiàn)表單驗證”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI