php 令牌验证 原理,表单令牌及验证

本文介绍了一种利用表单令牌防止重复提交的方法,并演示了如何在PHP环境下使用phpGrace库来实现这一功能。文中详细解释了设置和验证令牌的过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

# 表单令牌

表单令牌可以放置重复提交,同时对机器人有一定的拦截作用,在 phpGrace 的支持下(利用 cookie),实现这样的功能是非常简单的,函数说明:

## **1、setToken() 设置token**

在表单中使用隐藏域设置令牌,如:

~~~

" />

~~~

## **2、getToken 获取令牌的值**

在控制器内获取表单提交信息,并校验令牌,如:

~~~

class indexController extends grace{

public function index(){

if(PG_POST){

$token = getToken();

echo "系统记录的 token:{$token}
";

echo "POST数据中的 token:{$_POST['__token__']}
";

if($token == $_POST['__token__']){

echo 'ok';

}else{

echo 'token 错误';

}

}

}

}

~~~

## **说明:**

getToken() 获取token 后会注销 cookie 中记录的 token,只能获取一次哦  ^\_^

## **3、数据验证过程中自动验证token**

3.1 遵循规则:表单内隐藏域的名称为:“\_\_token\_\_”

~~~

" />

~~~

3.2 在进行数据验证是设置验证token,如:

~~~

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;

}

}

}

}

~~~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值