日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > php >内容正文

php

php ci提交表单验证,ci表单验证代码

發(fā)布時間:2025/3/19 php 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 php ci提交表单验证,ci表单验证代码 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

概述

這是只考慮php對表單數(shù)據(jù)的接收處理。至于js部分以前會結(jié)合validate來講解下

在解釋 CodeIgniter 的數(shù)據(jù)驗證處理之前,讓我們先描述一下一般的情況:

一個表單顯示了。

你填寫并提交了它。

如果你提交了一些無效的信息,或者可能漏掉了一個必填項,表單將會連同你的數(shù)據(jù)和錯誤問題的描述信息重新顯示。

這個過程將繼續(xù),直到你提交了一個有效的表單。

在接收端,腳本必須:

檢查必須的數(shù)據(jù)。

驗證數(shù)據(jù)是否為正確的類型,合適的標(biāo)準(zhǔn)。例如,如果一個用戶名被提交,它必須被驗證是否只包含了允許的字符。它必須有一個最小長度,不能超過最大長度。用戶名不能是已存在的他人用戶名,或者甚至是一個保留字等。

清理數(shù)據(jù)使其安全。

如果需要,預(yù)格式化數(shù)據(jù)(數(shù)據(jù)需要清除空白嗎?經(jīng)過 HTML 編碼?等。)

準(zhǔn)備數(shù)據(jù),插入數(shù)據(jù)庫。

盡管上面的過程并不是很復(fù)雜,但是通常需要編寫很多代碼,而且為了顯示錯誤信息,在網(wǎng)頁中經(jīng)常要使用多種不同的控制結(jié)構(gòu)。創(chuàng)建表單驗證雖簡單,實(shí)施起來卻也枯燥無味。其實(shí)不僅僅是枯燥無味,而是很多時候想死的心都有。但是本著不放過任何一條漏網(wǎng)之魚原則,表單驗證很有必要

表單驗證指南

為了進(jìn)行表單驗證,你需要這三樣?xùn)|西:

一個包含表單的視圖文件。

一個包含“成功”信息的視圖文件,在成功提交后將被顯示。

一個接收并處理所提交數(shù)據(jù)的控制器函數(shù)。

讓我們以一個會員注冊表單為例來創(chuàng)建這三個玩意。

表單:

使用一個文本編輯器,創(chuàng)建一個名叫 myform.php 的表單。在它里面放上這些代碼并把它保存到你的

applications/views/

文件夾中:

My Form
Username
Password
Password Confirm
Email Address

成功頁面

使用一個文本編輯器,創(chuàng)建一個名叫 formsuccess.php 的表單。在它里面放上這些代碼并保存到你的applications/views/文件夾:

My Form

Your form was successfully submitted!

控制器

使用一個文本編輯器,創(chuàng)建一個名叫 form.php 的控制器。在它里面,放上這些代碼并保存到你的

applications/controllers/

文件夾:

class Form extends CI_Controller {

function index()

{

$this->load->helper(array(‘form’, ‘url’));

$this->load->library(‘form_validation’);

if ($this->form_validation->run() == FALSE)

{

$this->load->view(‘myform’);

}

else

{

$this->load->view(‘formsuccess’);

}

}

}

?>

Try it!

要測試你的表單,請使用類似這樣的URL訪問你的網(wǎng)站:

example.com/index.php/form/

如果你提交表單你只會看到表單重新加載了。這是因為你還沒有設(shè)置驗證規(guī)則。

由于你還沒有告訴表單驗證類驗證什么東西。它只是默認(rèn)的返回了 FALSE (boolean false) 。

run()

方法只在全部成功匹配了你的規(guī)則才會返回 TRUE 。

解析

你會注意到在此頁上面的幾點(diǎn):

表單 (myform.php) 是一個標(biāo)準(zhǔn)的Web表單,除了以下兩點(diǎn):

它使用一個 表單輔助函數(shù) 創(chuàng)建表單開始。技術(shù)上,這并非必要。你可以使用標(biāo)準(zhǔn)的HTML來創(chuàng)建,然而,使用輔助函數(shù)的好處是它為你生成了基于你配置文件中的URL的 action URL。這使得你的應(yīng)用在更改URL時更具移植性。 實(shí)際上,我個人更加傾向于自己用標(biāo)準(zhǔn)的html來創(chuàng)建表單

在表單的頂端你將注意到如下函數(shù)調(diào)用:

<?php echo validation_errors(); ?>

這個函數(shù)將會返回驗證器送回的所有錯誤信息。如果沒有錯誤信息,它將返回空字符串。

控制器 (form.php) 有一個方法: index()。這個方法初始化驗證類并加載你視圖中用到的表單輔助函數(shù)和URL 輔助函數(shù) 它也會

運(yùn)行基于驗證是否成功,它會重現(xiàn)表單或顯示成功頁面。

驗證程序。

設(shè)置驗證規(guī)則( 重點(diǎn)來了)

CodeIgniter允許你為單個表單域創(chuàng)建多個驗證規(guī)則,按順序?qū)盈B在一起,你甚至可以同時預(yù)先處理表單域數(shù)據(jù)。要設(shè)置驗證規(guī)則請使用set_rules() 函數(shù):

$this->form_validation->set_rules();

上面的函數(shù)使用 三個 參數(shù)作為輸入:

表單域的名字 – 就是你給表單域取的那個名字。

一個此表單域的 "人性化" 名字,它將被插入到錯誤信息中。例如,如果你有一個表單域叫做“user”你可能給它一個人性化名字叫做“用戶名”。 注意: 如果你想讓表單域的名字保存在一個語言文件里,請參考翻譯表單域名字.

為此表單域設(shè)置的驗證規(guī)則。

這兒有一個示例。在你的 控制器 (form.php) 中緊接著驗證初始化函數(shù)之后,添加這段代碼:

$this->form_validation->set_rules(‘username’, ‘Username’, ‘required’);

$this->form_validation->set_rules(‘password’, ‘Password’, ‘required’);

$this->form_validation->set_rules(‘passconf’, ‘Password Confirmation’, ‘required’);

$this->form_validation->set_rules(‘email’, ‘Email’, ‘required’);

你的控制器現(xiàn)在看起來像這樣:

class Form extends CI_Controller {

function index()

{

$this->load->helper(array(‘form’, ‘url’));

$this->load->library(‘form_validation’);

$this->form_validation->set_rules(‘username’, ‘Username’, ‘required’);

$this->form_validation->set_rules(‘password’, ‘Password’, ‘required’);

$this->form_validation->set_rules(‘passconf’, ‘Password Confirmation’, ‘required’);

$this->form_validation->set_rules(‘email’, ‘Email’, ‘required’);

if ($this->form_validation->run() == FALSE)

{

$this->load->view(‘myform’);

}

else

{

$this->load->view(‘formsuccess’);

}

}

}

?>

現(xiàn)在留空表單域提交表單你會看到錯誤信息。 如果你填充所有的表單域提交表單你會看到成功頁。

注意: 出現(xiàn)錯誤時表單域并沒有被使用數(shù)據(jù)重新填充。稍后我們?nèi)ジ氵@個。

使用一個數(shù)組設(shè)置驗證規(guī)則

$config = array(

array(

‘field’?? => ‘username’,

‘label’?? => ‘Username’,

‘rules’?? => ‘required’

),

array(

‘field’?? => ‘password’,

‘label’?? => ‘Password’,

‘rules’?? => ‘required’

),

array(

‘field’?? => ‘passconf’,

‘label’?? => ‘Password Confirmation’,

‘rules’?? => ‘required’

),

array(

‘field’?? => ‘email’,

‘label’?? => ‘Email’,

‘rules’?? => ‘required’

)

);

$this->form_validation->set_rules($config);

級聯(lián)規(guī)則(Cascading Rules)

CodeIgniter 允許你將多個規(guī)則連接在一起。讓我們試一試。修改規(guī)則設(shè)置函數(shù)中的第三個參數(shù),如下:

$this->form_validation->set_rules(‘username’, ‘Username’, ‘required|min_length[5]|max_length[12]|is_unique[users.username]‘);

$this->form_validation->set_rules(‘password’, ‘Password’, ‘required|matches[passconf]‘);

$this->form_validation->set_rules(‘passconf’, ‘Password Confirmation’, ‘required’);

$this->form_validation->set_rules(‘email’, ‘Email’, ‘required|valid_email|is_unique[users.email]‘);

上面的代碼設(shè)置了一組規(guī)則:

用戶名表單域長度不得小于5個字符以及大于12個字符。

密碼表單域必須跟密碼確認(rèn)表單域的數(shù)據(jù)一致。

電子郵件表單域必須是一個有效郵件地址。

這里特別要注意一下,這個在初次訪問這個函數(shù)的時候。并不會調(diào)用那些出錯信息。只有在提交后,才可能看到

總結(jié)

以上是生活随笔為你收集整理的php ci提交表单验证,ci表单验证代码的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。