<address id="ousso"></address>
<form id="ousso"><track id="ousso"><big id="ousso"></big></track></form>
  1. php語言

    ThinkPHP表單自動提交驗證實例教程

    時間:2025-03-12 13:51:53 php語言 我要投稿
    • 相關推薦

    ThinkPHP表單自動提交驗證實例教程

      文章主要介紹了ThinkPHP表單自動提交驗證實例教程,非常有實用價值,需要的朋友可以參考下。

      本文以實例講述了ThinkPHP表單自動提交驗證的實現過程,詳細步驟如下所示:

      一、模板部分:

      <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">

      <HTML>

      <HEAD>

      <meta http-equiv="Content-Type" content="text/html; charset=utf-8">

      <TITLE>ThinkPHP示例:表單提交、自動驗證和自動填充</TITLE>

      </HEAD>

      <BODY>

      <p class="main">

      <FORM METHOD=POST ACTION="__URL__/insert">

      <TABLE cellpadding=2 cellspacing=2>

      <TR>

      <TD width="12%">標題:</TD>

      <TD ><INPUT TYPE="text" NAME="title" style="height:23px" class="large bLeft"></TD>

      </TR>

      <TR>

      <TD >郵箱:</TD>

      <TD ><INPUT TYPE="text" NAME="email" style="height:23px" class="large bLeft"></TD>

      </TR>

      <TR>

      <TD>內容:</TD>

      <TD><TEXTAREA NAME="content" class="large bLeft" ROWS="8" COLS="25"></TEXTAREA></TD>

      </TR>

      <TR>

      <TD>驗證碼:</TD>

      <TD><INPUT TYPE="text" NAME="verify" style="height:23px" class="small" > <img src="__URL__/verify" align="absmiddle" /> 輸入對應的數字</TD>

      </TR>

      <TR>

      <TD></TD>

      <TD><INPUT TYPE="submit" class="button" value="提 交"> <INPUT TYPE="reset" class="button" value="清 空"></TD>

      </TR>

      <TR>

      <TD></TD>

      <TD ><HR></TD>

      </TR>

      <volist name="list" id="vo">

      <TR>

      <TD></TD>

      <TD style="border-bottom:1px dotted silver">{$vo.title} <span style="color:gray">[{$vo.email} {$vo.create_time|date='Y-m-d H:i:s',###}]</span></TD>

      </TR>

      <TR >

      <TD></TD>

      <TD ><p class="content">{$vo.content|nl2br}</p></TD>

      </TR>

      </volist>

      </TABLE>

      </FORM>

      </p>

      </BODY>

      </HTML>

      二、模型部分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 使用正則進行驗證,表示前面定義的驗證規則是一個正則表達式(默認)

      */

      // 自動填充設置

      //由上面推導,下面這個是自動填充字段了,方便明了

      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().' [ <A href="javascript:history.back()" rel="external nofollow" >返 回</A> ]');

      }

      }

      // 生成驗證碼

      //這個方法沒什么好說的,固定格式

      public function verify() {

      import("ORG.Util.Image");

      Image::buildImageVerify(); //這里兩個冒號是調用靜態方法

      }

      }

      ?>

    【ThinkPHP表單自動提交驗證實例教程】相關文章:

    ThinkPHP中create()方法自動驗證表單信息09-10

    ThinkPHP中自動驗證07-26

    使用php自動提交表單的方法11-16

    如何實現php登陸表單提交CSRF及驗證碼09-14

    php中tp驗證表單與自動填充函數代碼07-16

    PHP 表單驗證方法11-01

    常用表單驗證的js方法11-12

    如何讓php提交form表單11-06

    PHP提交from表單的方法07-05

    <address id="ousso"></address>
    <form id="ousso"><track id="ousso"><big id="ousso"></big></track></form>
    1. 日日做夜狠狠爱欧美黑人