CI框架表單驗證實例詳解
本文實例講述了CI框架表單驗證的方法。分享給大家供大家參考,具體如下:
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、設置驗證規(guī)則(controller)
<?php
//注意驗證規(guī)則的變量名必須設置成 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'
)
);
//上面的會自動
//單獨設置規(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{
//提交成功 表單處理
//跳轉成功頁面
$this->load->view('formsuccess');
}
}
5、錯誤信息的輸出函數(shù)(view)
<?php
//1.一股腦兒的全部輸出(放在表單標簽的上方即可)
echo validation_errors();
//2.針對單個表單單獨輸出(放在單個標簽附近 參數(shù)為對應表單元素的域名)
echo form_error('password');
//3.針對單個表單輸出的時候 需要修改定界符 顯示錯誤信息樣式(控制器里設置)
$this->form_validation->set_error_delimiters('<span class="error">', '</span>');
//設置成內(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'); ?>
<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'); ?>
<div><input type="submit" value="Submit" /></div>
</form>
</body>
</html>
更多關于CodeIgniter相關內(nèi)容感興趣的讀者可查看本站專題:《codeigniter入門教程》、《CI(CodeIgniter)框架進階教程》、《php優(yōu)秀開發(fā)框架總結》、《ThinkPHP入門教程》、《ThinkPHP常用方法總結》、《Zend FrameWork框架入門教程》、《php面向對象程序設計入門教程》、《php+mysql數(shù)據(jù)庫操作入門教程》及《php常見數(shù)據(jù)庫操作技巧匯總》
希望本文所述對大家基于CodeIgniter框架的PHP程序設計有所幫助。
相關文章
淺談php serialize()與unserialize()的用法
本篇文章是對php中的serialize()與unserialize()的應用進行了詳細的分析介紹,需要的朋友參考下2013-06-06
將PHP程序中返回的JSON格式數(shù)據(jù)用gzip壓縮輸出的方法
這篇文章主要介紹了將PHP中返回的JSON格式數(shù)據(jù)用gzip壓縮輸出的方法,文中示例環(huán)境為Linux系統(tǒng)與Apache服務器,需要的朋友可以參考下2016-03-03
Laravel5.1 框架數(shù)據(jù)庫查詢構建器用法實例詳解
這篇文章主要介紹了Laravel5.1 框架數(shù)據(jù)庫查詢構建器用法,結合實例形式詳細分析了laravel5.1框架查詢構造器相關原理、使用技巧與操作注意事項,需要的朋友可以參考下2020-01-01
yii2.0數(shù)據(jù)庫遷移教程【多個數(shù)據(jù)庫同時同步數(shù)據(jù)】
這篇文章主要介紹了yii2.0數(shù)據(jù)庫遷移的方法,可實現(xiàn)多個數(shù)據(jù)庫同時同步數(shù)據(jù)的功能,較為詳細的分析了Yii2針對遷移的創(chuàng)建、提交、重做及自定義遷移的相關概念與使用方法,需要的朋友可以參考下2016-10-10

