ThinkPHP輸入驗證和I方法使用

2022-08-21 07:51:10 字數 1455 閱讀 2705

在web開發過程中,我們經常需要獲取系統變數或者使用者提交的資料,這些變數資料錯綜複雜,而且一不小心就容易引起安全隱患,但是如果利用好thinkphp提供的變數獲取功能,就可以輕鬆的獲取和駕馭變數了。

在接收變數之前,可以先對請求**(方式)進行判斷

在很多情況下面,我們需要判斷當前操作的請求型別是get 、post 、put或 delete,一方面可以針對請求型別作出不同的邏輯處理,另外一方面有些情況下面需要驗證安全性,過濾不安全的請求。

我們不建議直接使用傳統方式獲取,因為沒有統一的安全處理機制,後期如果調整的話,改起來會比較麻煩。所以,更好的方式是在框架中統一使用i函式進行變數獲取和過濾。

i方法是thinkphp眾多單字母函式中的新成員,其命名來自於英文input(輸入),主要用於更加方便和安全的獲取系統輸入變數。

echo i('get.id');// 相當於 $_get['id']

echo i('get.name');// 相當於 $_get['name']

// 系統預設的變數過濾機制

'default_filter'=>'htmlspecialchars'

第三個引數可以傳入函式名,則表示呼叫該函式對變數進行過濾並返回(在變數是陣列的情況下自動使用array_map進行過濾處理),否則會呼叫php內建的filter_var方法進行過濾處理,例如:

i('post.email','','email');

系統自帶的的函式有:

int

boolean

float

validate_regexp

validate_url

validate_email

validate_ip

string

stripped

encoded

special_chars

unsafe_raw

email

url

number_int

number_float

magic_quotes

callback

如果未通過驗證,則返回空字串

17 ThinkPhP5 輸入和驗證 上

1 建立驗證器 在index模組 validate驗證器 users.php 這個命名規範是同模型 表 保持一致。use think validate class users extends validateelse 2 建立模板create.html 在模板view 下的對user控制器的模板檔案...

GE PACSystems RX3i 輸入驗證漏洞

受影響系統 general electric cpe100 r9.85 general electric cpe115 r9.85 general electric cpe302 r9.90 general electric cpe305 r9.90 general electric cpe310 ...

驗證 i和i 的區別

平時我們對k i和k i 的區別解釋一般記憶 i就是i先自身加1再賦值給k i 就是先將i賦值給k,i在自身加1 這樣的解釋最終都是說將i賦值給了k。這裡通過寫幾個方法來證明,這個說法並不對。當然這樣記憶可能更為方便些。分析 i和i 的區別.author j.kevin 平時我們對k i和k i 的...