在web開發過程中,我們經常需要獲取系統變數或者使用者提交的資料,這些變數資料錯綜複雜,而且一不小心就容易引起安全隱患,但是如果利用好thinkphp提供的變數獲取功能,就可以輕鬆的獲取和駕馭變數了。
雖然你仍然可以在開發過程中使用傳統方式獲取各種系統變數,例如:
$id = $_get['id']; //獲取get變數
$name = $_post['name']; //
獲取post變數
$value = $_session['var']; //
獲取session變數
$name = $_cookie['name']; //
獲取cookie變數
$file = $_server['php_self']; //
獲取server變數
但是我們不建議直接使用傳統方式獲取,因為沒有統一的安全處理機制,後期如果調整的話,改起來會比較麻煩。所以,更好的方式是在框架中統一使用i函式進行變數獲取和過濾。
i方法是thinkphp用於更加方便和安全的獲取系統輸入變數,可以用於任何地方,用法格式如下:
i('變數型別.變數名/修飾符',['預設值'],['過濾方法'],['額外資料來源'])
變數型別是指請求方式或者輸入型別,包括:
變數型別
含義get
獲取get引數
post
獲取post引數
param
自動判斷請求型別獲取get、post或者put引數
request
獲取request 引數
put獲取put 引數
session
獲取 $_session 引數
cookie
獲取 $_cookie 引數
server
獲取 $_server 引數
globals
獲取 $globals引數
path
獲取 pathinfo模式的url引數(3.2.2新增)
data
獲取 其他型別的引數,需要配合額外資料來源引數(3.2.2新增)
變數名則嚴格區分大小寫。
預設值和過濾方法均屬於可選引數。
變數修飾符是3.2.3版本新增
我們以get變數型別為例,說明下i方法的使用:
echo i('get.id');// 相當於 $_get['id']
echo i('get.name');// 相當於 $_get['name']
thinkphp學習筆記7 多層MVC
原文 thinkphp學習筆記7 多層mvc thinkphp支援多層設計。1.模型層model 使用多層目錄結構和命名規範來設計多層的model,例如在專案設計中如果需要區分資料層,邏輯層,服務層等不同的模型層可以在模組目錄下建立model,logic,service目錄,把對使用者表的所有模型操...
thinkphp學習筆記7 多層MVC
原文 thinkphp學習筆記7 多層mvc thinkphp支援多層設計。1.模型層model 使用多層目錄結構和命名規範來設計多層的model,例如在專案設計中如果需要區分資料層,邏輯層,服務層等不同的模型層可以在模組目錄下建立model,logic,service目錄,把對使用者表的所有模型操...
thinkphp學習筆記7 多層MVC
原文 thinkphp學習筆記7 多層mvc thinkphp支援多層設計。1.模型層model 使用多層目錄結構和命名規範來設計多層的model,例如在專案設計中如果需要區分資料層,邏輯層,服務層等不同的模型層可以在模組目錄下建立model,logic,service目錄,把對使用者表的所有模型操...