1. 程式人生 > >如何使用thinkphp 5內建驗證功能及自定義驗證方法

如何使用thinkphp 5內建驗證功能及自定義驗證方法

一個獨立的系統,僅僅只在前臺進行表單驗證是遠遠不夠的,在處理 PHP 表單時提交時需重視安全性,我們需對 HTML 表單資料進行適當的驗證對於防範黑客很重要。

使用ThinkPHP 5框架做專案時,如何使用框架自帶的驗證機制和框架內自定義驗證規則來比較好地做好專案,下面我們以實際專案講解:(以下程式碼擷取自tp5開源商城系統WSTMart,大家可自行下載)。

使用TP5框架驗證

(1)在需要使用驗證的模組下建立validate目錄,在目錄下建立驗證檔案。


(2)驗證規則的定義


驗證多個規則:


(3)驗證規則(部分)

TP5框架內建了常用的驗證規則:

require:驗證某個欄位必須

例如:['goodsName','require','請輸入商品名稱']

number(integer):驗證某個欄位的值是否為數字

例如:['goodsSn','number','商品貨號只能為數字']

float:驗證某個欄位的值是否為浮點資料

例如:['goodsPrice','float','商品價格只能為浮點數']

in:驗證某個欄位的值是否在某個範圍

例如:['goodsType' ,'in:,0,1','無效的商品型別'],

notIn:驗證某個欄位的值是否不在某個範圍

例如:['goodsType' ,'notIn:,0,1','無效的商品型別'],

max:number 驗證某個欄位的值的最大長度

例如:['goodsName'  ,'max:300','商品名稱不能超過100個字元']

*以上只是部分內建規則,完整的內建規則請參考TP5官方文件

自定義驗證規則:系統內建了一些規則,偶爾會出現不夠用,因此可以自己擴充套件驗證規則,可以直接在驗證器類新增自己的驗證方法(需要注意的是,自定義的驗證規則方法名不能和已有的規則衝突

 

 (4)在model檔案中,需要使用的地方呼叫validate(true)方法

 

(5)   若驗證不通過,save()會返回false,驗證不通過的原因可以通過$this->getError()來獲取

 

以上就是tp5的系統驗證規則及自定義驗證方法規則,大家有比較好的方法也希望多留言交流!

相關推薦

如何使用thinkphp 5驗證功能定義驗證方法

一個獨立的系統,僅僅只在前臺進行表單驗證是遠遠不夠的,在處理 PHP 表單時提交時需重視安全性,我們需對 HTML 表單資料進行適當的驗證對於防範黑客很重要。 使用ThinkPHP 5框架做專案時,

struts2之宣告式驗證後續定義驗證

在宣告式驗證中,只學會如何配置內建驗證器是不行的,因為驗證的配置中有很多技巧,那麼這篇文章中會分析以下三個問題: 一. 若 Action 類對應多個 action 請求, 且 action 請求使用不同的驗證規則 (1)為每一個不同的 action 請求定義其對應的驗證檔案

Spring Security驗證流程剖析定義驗證方法

com UNC title 具體實現 hold any pan imp uil Spring Security本質上是一連串的Filter, 然後又以一個獨立的Filter的形式插入到Filter Chain裏,其名為FilterChainProxy。 如圖所示。 實

9.12 URL控制器之path方法--轉換器,定義轉換器

兩個用法一致: django 1.0 :  url django2.0 : re_path     基於以下2個需求,django2.0 又加了path方法: 一、使用內建轉換器 內建轉換器有:   二、自定義轉換器: 1.

DRF認證元件之定義認證系統

## 自定義token認證 我們知道,在django專案中不管路由以及對應的檢視類是如何寫的,都會走到 `dispatch` 方法,進行路由分發, 在閱讀 `APIView類中的dispatch` 方法的原始碼中,有個 `self.initial(request, *args, **kwargs)`,可以

DRF許可權元件之定義許可權管理類

# DRF內建許可權元件permissions 許可權控制可以限制使用者對於檢視的訪問和對於具體資料物件的訪問。 - 在執行檢視的dispatch()方法前,會先進行檢視訪問許可權的判斷 - 在通過get_object()獲取具體物件時,會進行模型物件訪問許可權的判斷 在settings.py中設定DR

SpringMVC中沒有檔案驗證註解怎麼辦?定義驗證註解@ValidFile解決問題

在web專案開發過程中,檔案上傳是一個很常見的功能,但是我們常常需要對上傳檔案的大小,檔案的格式,上傳的檔案是否空等進行判斷,SpringMVC中我們只需要簡單的配置就可以實現上傳檔案功並對上傳的檔案限制,Springboot中預設開啟檔案上傳配置,預設採用Servlet3.0檔案上傳的API實現,

大資料入門教程系列之Hive函式定義函式

本篇文章主要介紹Hive內建函式以及自定義UDF函式和UDFT函式,自定義UDF函式通過一個國際轉換中文的例子說明。 操作步驟: ①、準備資料和環境 ②、演示Hive內建函式 ③、自定義UDF函式編寫、演示   詳細步驟: 一、準備資料和

Hive 函式定義函式

1.內建函式 使用如下命令檢視當前hive版本支援的所有內建函式 show functions; 部分截圖: 可以使用如下命令檢視某個函式的使用方法及作用,比如檢視 upper函式 desc function upper; 如果想要檢

hibernate validation置註解定義註解

ons private from decimal 最重要的 con name cts mva 1 Bean Validation 中內置的 constraint 2 @Null 被註釋的元素必須為 null 3 @NotNull

Jquery Validate 默認校驗規則常用的定義驗證規則

字符 eth ber exp string amp 手機 zip 子郵件 Jquery Validate 相關參數及常用的自定義驗證規則 一、官網地址:http://bassistance.de/jquery-plugins/jquery-plugin-validatio

Jquery Validate 相關參數常用的定義驗證規則

手機號碼驗證 cti dea 復制 接收 least join cep mat 一、官網地址:http://bassistance.de/jquery-plugins/jquery-plugin-validation 二、默認校驗規則 1

ThinkPHP 5.x (v5.0.23v5.1.31以下版本) 遠端命令執行漏洞利用(GetShell)(轉載)

ThinkPHP官方2018年12月9日釋出重要的安全更新,修復了一個嚴重的遠端程式碼執行漏洞。該更新主要涉及一個安全更新,由於框架對控制器名沒有進行足夠的檢測會導致在沒有開啟強制路由的情況下可能的getshell漏洞,受影響的版本包括5.0和5.1版本,推薦儘快更新到最新版本。 漏洞分析 Thin

【轉】WPF定義控制元件與樣式(5)-Calendar/DatePicker日期控制元件定義樣式擴充套件

一.前言   申明:WPF自定義控制元件與樣式是一個系列文章,前後是有些關聯的,但大多是按照由簡到繁的順序逐步釋出的等。 本文主要內容: 日曆控制元件Calendar自定義樣式; 日期控制元件DatePicker自定義樣式,及Label標籤、水印、清除日期功能擴充套件; 二.Calend

scala 入門(5) -- 控制結構

根本你以為婚姻就是長期的賣淫 —— 傾城之戀 參考 《Scala 程式設計》 重要理解 Scala 中,幾乎所有的控制語句都會產生某個值 if 語句 先來看一個指令式形式的 scala 程式碼: va

嵌式js微信掃碼登入定義樣式

關於微信掃碼登入網站的功能介紹,請閱讀官方文件【網站應用微信登入開發指南】 根據官方文件我們知道微信掃碼登入有兩種方式 一種是跳轉到一個大黑屏二維碼介面進行掃碼登入: (參見部落格:PHP實現跳轉式微信掃碼登入網站 ) 另外一種是把二維碼內嵌到頁面中,這樣可以自定

許可權驗證程式碼詳解定義許可權驗證

一、許可權認證原始碼詳解 1、進入dispatch 2、initial中self.check_permissions(request)進行許可權驗證 3、進入check_permissions for permission in self.get_permissions(): 4、

Python3.5——模組詳解之os模組、sys模組、shutil模組

1、os模組:提供對作業系統進行呼叫的介面 #!/usr/bin/env python # -*- coding:utf-8 -*- # Author:ZhengzhengLiu import os print(os.getcwd()) #獲取當前的操作目錄,即當前

Jquery Validate 相關引數常用的定義驗證規則

IT程式設計師開發必備-各類資源下載清單 Jquery Validate 相關引數 //定義中文訊息 var cnmsg = { required: “必選欄位”, remote: “請修正該欄位”, email: “請輸入正確格式的電子郵件”, url:

基於安卓5.0水波紋效果製作定義水波紋顏色

安卓5.0以後很多ui效果的改進都是為提高使用者體驗,其中水波紋效果是5.0以後是在互動方式中做的特殊處理 接下來學習一下水波紋的簡單使用及水波紋顏色的自定義。 首先佈局檔案中給控制元件設定為可點