表單令牌可以放置重復提交,同時對機器人有一定的攔截作用,在 Frphp 的支持下(利用 cookie),實現這樣的功能是非常簡單的,函數說明:
**1、setToken() 設置token**
在表單中使用隱藏域設置令牌,如:
~~~
<form?action=""?method="post">
????<input?type="text"?name="name"?/>
????<input?type="hidden"?name="token"?value="<?php?echo?setToken();?>"?/>
????<input?type="submit"?value="提交"/>
</form>
~~~
**2、getToken 獲取令牌的值**
在控制器內獲取表單提交信息,并校驗令牌,如:
~~~
<?php
class?indexController?extends?FrBase{
????public?function?index(){
????????if(FR_POST){
????????????$token?=?getToken();
????????????echo?"系統記錄的?token:{$token}<br?/>";
????????????echo?"POST數據中的?token:{$_POST['__token__']}<br?/>";
????????????if($token?==?$_POST['__token__']){
????????????????echo?'ok';
????????????}else{
????????????????echo?'token?錯誤';
????????????}
????????}
????}
}
~~~
**說明:**
getToken() 獲取token 后會注銷 cookie 中記錄的 token,只能獲取一次哦 ?^\_^
**3、數據驗證過程中自動驗證token**
3.1 遵循規則:表單內隱藏域的名稱為:“\_\_token\_\_”
~~~
<input?type="hidden"?name="__token__"?value="<?php?echo?setToken();?>"?/>
~~~
3.2 在進行數據驗證是設置驗證token,如:
~~~
<?php
class?indexController?extends?FrBase{
????public?function?index(){
????????if(FR_POST){
????????????$checkRules?=?array(
????????????????'name'??=>?array('string',?'2,10',?'姓名應為?2?-?10?字符')
????????????);
????????????//第三個參數為可選參數,設置為true時自動檢查?Token
????????????$checker?=?new?FrPHP\tools\dataChecker($_POST,?$checkRules,?true);
????????????$res?=?$checker->check();
????????????if($res){
????????????????echo?'驗證通過';
????????????}else{
????????????????echo?$checker->error;
????????????}
????????}
????}
}
~~~
- 第一章:快速開始
- 1.1 簡介和條款
- 1.2 環境和偽靜態
- 1.3 目錄結構及命名
- 1.4 初始化、原理、分組
- 1.5 兼容7.2php
- 第二章 控制器和路由
- 2.1 創建控制器
- 2.2 基礎控制器
- 2.3 URL解析
- 2.4 自定義路由
- 2.5 URL路由生成
- 第三章 數據和模型
- 3.1 數據庫的配置
- 3.2 獲取數據庫對象
- 3.3 數據庫操作
- 3.4 數據分頁詳情
- 3.5 事務操作&處理
- 3.6 數據驗證
- 3.7 表單驗證
- 3.8 全局模型創建與調用
- 第四章 視圖
- 4.1 視圖文件的創建
- 4.2 視圖調用及引用
- 4.3 視圖文件路徑模式
- 第五章 會話機制
- 5.1 cookie 操作
- 5.2 文件型 SEssion
- 5.3 session[memcache]
- 5.4 session[redis]
- 第六章 緩存機制
- 6.1 緩存的簡介和配置
- 6.2 文件型緩存
- 6.3 memcache 形式的緩存
- 6.4 redis 形式的緩存
- 第七章 配置 常量 語言
- 7.1 全局配置&分組配置
- 7.2 預定義常量
- 7.3 語言包使用說明
- 第八章 工具擴展
- 8.1 函數小工具
- 8.2 工具類函數
- 第九章 安全配置擴展
- 9.1 框架安全部署
- 9.2 常規安全配置
- 9.3 如何去擴展
- 附錄:擴展工具類
- 一 、圖片處理類
- 二、文件上傳類
- 三、IP地址獲取類