PHP使用session防止表单重复提交
来源:互联网 发布:三国杀官方淘宝旗舰店 编辑:程序博客网 时间:2024/05/18 01:24
在测试程序功能的时候,发现表单POST数据的时候存在一个重复提交的问题,而在每个提交页面都使用验证码进行验证用户体验又不太好,查阅网上的资料后发现目前解决这个问题的方法主要有以下几种:
1、添加js验证,防止提交重复表单
2、提交后页面重定向或刷新
3、提交后,提交按钮变为不可用
4、加验证码
5、表单令牌(session)
前三种方法可以控制普通用户正常提交,却无法阻止恶意灌水性质的提交,验证码控制有时候影响用户体验,在这种情况下只有使用表单令牌了
1、 时间限制(验证码)+重定向
前台(不做时间限制的话需要):<input type=’hidden’value=”$_SESSION[‘joininToken’]” name=’token’>
如果是对提交做时间限制,前台可以不写代码
<?php
$time=60; //1分钟
If(isset($_SESSION[‘joininToken’] )){
$tokenTime = sub_str($_SESSION[‘joininToken’],0,11);
(time()-$tokenTime) < $time && $this->showMsg(‘提交过于频繁’);
}
$encode = time().MD5(random(1000,99999).’DvHgR8O4’);
$_SESSION[‘joininToken’]= $encode;
提交完成后立即重定向
//如果有自己的加密函数可以加密和解密可以替换为以下代码:
$encode = xxUtils::authcode(time().xxx,‘encode’,$salt,$time)
//解密
$tokenTime = str_replace(' ','+',$this->getParam('token'));
$tokenTime = xxUtils::authcode(time().xxx,‘decode’,$salt,$time);
- PHP使用session防止表单重复提交
- 使用Session防止表单重复提交
- session的使用:防止表单重复提交
- 使用Session防止表单重复提交
- 使用Session防止表单重复提交
- 使用Session防止表单重复提交
- 使用Session防止表单重复提交
- 使用Session防止表单重复提交
- 使用Session防止表单重复提交
- 使用Session防止表单重复提交
- 使用Session防止表单重复提交
- 使用Session防止表单重复提交
- JavaWeb使用Session防止表单重复提交
- 使用Session防止表单重复提交
- 使用Session防止表单重复提交
- 使用Session防止表单重复提交
- 使用Session防止表单重复提交
- 使用Session防止表单重复提交
- Python语法
- 我的血泪控告
- Android兼容性测试的一些坑
- 让进程在linux后台可靠运行的几种方法
- 用eclipse 检索SVN 上 myEclipse 建的web项后,成java项目解决方法
- PHP使用session防止表单重复提交
- java 导出zip包
- python apply函数的用法
- 写在前面的话
- 和东方国际人员天津市人员红地毯
- 采用浮点数编码的遗传算法的问题
- Linux Terminal Color
- IT业地科技体育课的体育课兔耳朵
- sql 查询 in里的个数超过1000 实用方法