ThinkPHP表單自動認可驗證執行個體教程_php執行個體

來源:互聯網
上載者:User
本文以執行個體講述了ThinkPHP表單自動認可驗證的實現過程,詳細步驟如下所示:

一、模板部分:

ThinkPHP樣本:表單提交、自動驗證和自動填滿

二、模型部分form類程式碼:

<?php class FormModel extends Model { // 自動驗證設定 protected $_validate  =  array(//這裡必須定義為$_validata用來驗證 array('title','require','標題必須!',1), array('email','email','郵箱格式錯誤!',2), array('content','require','內容必須'), array('verify','require','驗證碼必須!'), array('verify','CheckVerify','驗證碼錯誤',0,'callback'),//callback 使用方法驗證,前面定義的驗證規則是一個當前 Model 類的方法 //這裡如果有不太理解的話可以看本類的最後一個方法 array('title','','標題已經存在',0,'unique','add'),//附加驗證unique,unique 驗證是否唯一,系統會根據欄位目前的值查詢資料庫來判斷是否存在相同的值 ); /*think的驗證機制,省去了不少麻煩非空:equire 郵箱:email 驗證碼正確:CheckVerify array()數組內容array(驗證欄位,驗證規則,錯誤提示,驗證條件,附加規則,驗證時間) 驗證條件 EXISTS_TO_VAILIDATE 或者 0 存在欄位就驗證 (預設) MUST_TO_VALIDATE 或者1 必須驗證 VALUE_TO_VAILIDATE 或者 2 值不為空白的時候驗證 附加規則 配合驗證規則使用,包括: function 使用函數驗證,前面定義的驗證規則是一個函數名 callback 使用方法驗證,前面定義的驗證規則是一個當前 Model 類的方法 confirm 驗證表單中的兩個欄位是否相同,前面定義的驗證規則是一個欄位名 equal 驗證是否等於某個值,該值由前面的驗證規則定義 in 驗證是否在某個範圍內,前面定義的驗證規則必須是一個數組 unique 驗證是否唯一,系統會根據欄位目前的值查詢資料庫來判斷是否存在相同的值 regex 使用正則進行驗證,表示前面定義的驗證規則是一個Regex(預設) */ // 自動填滿設定 //由上面推導,下面這個是自動填滿欄位了,方便明了 protected $_auto  =  array(//同樣這裡必須定義為$_auto array('status','1','ADD'), array('create_time','time','ADD','function'),//這裡指明填充使用函數time() ); /* 數組因子: array(填充欄位,填充內容,填充條件,附加規則) 填充條件包括: ADD 新增資料的時候處理(預設) Update 更新資料的時候處理 ALL 所有情況下都進行處理  附加規則包括: function 使用函數 callback 回調方法 field 用其它欄位填充 string 字串(預設) */ public function CheckVerify() {  return md5($_POST['verify']) == $_SESSION['verify']; }}?>

三、控制器部分indexaction類程式碼:

<?php class IndexAction extends Action{ // 首頁 public function index(){  $Form = D("Form");//建立一個對象  $list = $Form->top6('','*','id desc');//從資料庫中讀取最新6條記錄,並且安id倒序輸出  $this->assign('list',$list);//把資料傳到模板裡  $this->display(); } // 處理表單資料 public function insert() {//此方法對應表單的ACTION="__URL__/insert"  $Form = D("Form");  if($Form->create()) {//建立 Form 資料對象,預設通過表單提交的資料進行建立,為下面寫入資料庫做準備   $Form->add();// 新增表單提交的資料 ,吧上面建立的資料對象提交   $this->redirect();//返回上一個模組,頁面跳轉可以說是  }else{   header("Content-Type:text/html; charset=utf-8");   exit($Form->getError().' [ 返 回 ]');  } } // 產生驗證碼 //這個方法沒什麼好說的,固定格式 public function verify() {  import("ORG.Util.Image");   Image::buildImageVerify(); //這裡兩個冒號是調用靜態方法 }} ?>
  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.