codeigniter 表單驗(yàn)證
驗(yàn)證是構(gòu)建 web 應(yīng)用程序的一個(gè)重要過程。它確保我們獲得的數(shù)據(jù)是正確和有效的,可以存儲(chǔ)或處理。 codeigniter 使這項(xiàng)任務(wù)變得非常容易。讓我們通過一個(gè)簡單的例子來理解這個(gè)過程。
示例
創(chuàng)建一個(gè)視圖文件 myform.php 并將下面的代碼保存在 application/views/myform.php 中。此頁面將顯示用戶可以提交姓名的表單,我們將驗(yàn)證此頁面以確保提交時(shí)它不應(yīng)為空。
my form echo validation_errors(); echo form_open('form'); name
創(chuàng)建視圖文件 formsuccess.php 并將其保存在 application/views/formsuccess.php 中。如果表單驗(yàn)證成功,將顯示此頁面。
my formyour form was successfully submitted!
echo anchor('form', 'try it again!');
創(chuàng)建控制器文件 form.php 并將其保存在 application/controller/form.php 中。如果此表單未正確驗(yàn)證或重定向到 formsuccess.php 頁面,則會(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';
讓我們通過在瀏覽器中訪問以下 url 來執(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 | 說明 | 示例 |
required |
no | 如果表單元素為空,則返回 false。 | |
matches |
yes | 如果表單元素與參數(shù)中的元素不匹配,則返回 false。 | matches[form_item] |
regex_match |
yes | 如果表單元素與正則表達(dá)式不匹配,則返回 false。 | regex_match[/regex/] |
differs |
yes | 如果表單元素與參數(shù)中的元素沒有不同,則返回 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 | 如果表單元素長于參數(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之后使用,以避免在開頭或結(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 無效,則返回 false。接受"ipv4"或"ipv6"的可選參數(shù)來指定 ip 格式。 | |
valid_base64 |
no | 如果提供的字符串包含有效 base64 字符以外的任何內(nèi)容,則返回 false。 |
- CodeIgniter 教程
- CodeIgniter 安裝
- CodeIgniter 應(yīng)用程序架構(gòu)
- CodeIgniter MVC 框架
- CodeIgniter 基本概念
- CodeIgniter 配置
- CodeIgniter 使用數(shù)據(jù)庫
- CodeIgniter 庫
- Laravel session
- Laravel 驗(yàn)證
- Laravel Facades
- Laravel 契約
- Laravel CSRF保護(hù)
- Laravel 認(rèn)證
- Laravel Artisan控制臺(tái)
- Laravel 加密
- Laravel 哈希
- Laravel 歷史版本記錄