# 表單令牌
表單令牌可以放置重復提交,同時對機器人有一定的攔截作用,在 phpGrace 的支持下(利用 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?grace{
????public?function?index(){
????????if(PG_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?grace{
????public?function?index(){
????????if(PG_POST){
????????????$checkRules?=?array(
????????????????'name'??=>?array('string',?'2,10',?'姓名應為?2?-?10?字符')
????????????);
????????????//第三個參數為可選參數,設置為true時自動檢查?Token
????????????$checker?=?new?phpGrace\tools\dataChecker($_POST,?$checkRules,?true);
????????????$res?=?$checker->check();
????????????if($res){
????????????????echo?'驗證通過';
????????????}else{
????????????????echo?$checker->error;
????????????}
????????}
????}
}
~~~
- 快速開始
- phpGrace 介紹
- 環境需求及偽靜態設置
- 目錄結構及命名規則
- 初始化、原理、分組
- 控制器與路由
- 創建控制器
- 基礎控制器
- URL解析規則
- 自定義路由
- URL生成
- 數據與模型
- 數據庫配置
- 獲取數據庫操作對象
- 數據庫操作(CURD)
- 數據分頁詳解
- 事務處理
- 數據驗證
- 表單令牌及驗證
- 模型創建與調用
- 視圖
- 視圖文件創建
- 調用、引用視圖
- 視圖路徑模式
- 會話機制
- Cookie 操作
- Session[文件型 ]
- Session [memcache]
- Session [redis]
- 緩存機制
- 緩存概述及配置
- 文件型緩存
- Memcache 形式的緩存
- Memcache介紹
- Memcache安裝
- 開啟PHP Memcache
- PHP操作Memcache
- Memcache來保存Session
- Memcached圖形化管理工具
- Memcache安全相關
- redis 形式的緩存
- Redis介紹
- Redis安裝
- 開啟 PHP Redis
- Redis圖形化管理工具
- PHP操作Redis
- 配置、常量、語言
- 全局配置、分組配置
- 預定義常量
- 語言包使用說明
- 工具
- 函數小工具
- 安全與擴展
- 框架部署安全
- 常規安全
- 擴展說明
- 常用類庫
- 圖片處理類
- 文件上傳類
- IP地址獲取類
- 驗證碼繪制類
- 日期時間換算類
- md5加密類
- 服務器信息類
- curl通信類
- 文件下載類
- 類反射工具
- XML生成與解析
- 漢字轉拼音類
- 文件夾操作
- 人民幣大寫轉換類
- 第三方類庫
- QQ登錄 - web版
- 微信掃碼登錄-網站
- excel 讀寫操作
- 阿里云短信接口
- SMTP 郵件發送
- 二維碼生成類
- word、pdf 生成類
- 阿里云靜態云存儲接口類