php post 过滤,ThinkPHP技巧-POST过滤
下面文章介绍了如下几个问题的解决方法仅供参考:
问题:
1. 表单 post 重复提交?
2.限制 post 模拟提交?
3.数据 add() 自增id出现奇数偶数?
1.如何解决表单 post 重复提交?
a.页面提交后转到另一个页面而不是本页面,举个栗子,比如你的页面地址为http://yourdomain.com/User/Index/login
则该页面的表单action地址可以为另外的处理地址,如
这样报错返回,或者用户点击回退按钮,还是会回到上一个地址
b.提交表单后提交按钮变灰/隐藏提交按钮
通过JS来动态监听用户的点击动作,动态将按钮属性置成disabeld,即为灰色不可用。代码如下:
JS:$().ready(function(){
$("#login_btn").on('click',function(){
$(this).attr('disabled',true);
});
});
c. 使用隐藏随机TOKEN值的方法进行重复提交判断
首先,在项目的functions.php中添加如下方法//创建TOKEN
functioncreateToken(){
$code = chr(
mt_rand(0xB0,0xF7)) .
chr(mt_rand(0xA1,0xFE)) .
chr(mt_rand(0xB0,0xF7)) .
chr(mt_rand(0xA1,0xFE)) .
chr(mt_rand(0xB0,0xF7)) .
chr(mt_rand(0xA1,0xFE)
);
session('TOKEN', authcode($code));
}
//判断TOKEN
function checkToken($token){
if($token == session('TOKEN')) {
session('TOKEN',NULL);
returnTRUE;
}else{
returnFALSE;
}
}
/* 加密TOKEN */
functionauthcode($str){
$key ="YOURKEY";
$str = substr(md5($str),8,10);
returnmd5($key . $str);
}
在表单页面form中填入以下HTML代码
HTML:
在页面展示前调用creatToken()方法生成token,在相应控制器POST请求中 使用 checkToken() 进行判断是否重复提交if(IS_POST){
$post_token = I('post.TOKEN');
if(!checkToken($post_token)){
$this->error('请不要重复提交页面',U('User/Index/login'));
}
}
基本上,就能解决ThinkPHP开发中表单重复提交问题,当然,有同学说可以使用ThinkPHP的令牌环机制,这样其实就更简单了,TP会默认在表单中生成一个隐藏域,到时候判断这个隐藏域是否存在以及和session中的值是否想的即可,原理和方法3是一样的。
2.如何限制表单post模拟提交?//如果是ajax 的post提交在控制器下方法内加入代码:
if(IS_AJAX&&IS_POST){
// 同时需要判定post是否是页面定义的post参数,非页面定义的参数,提示请求参数溢出
......
}
//若果只是post提交在控制器下方法加入代码:
if(IS_POST){
// 同时需要判定post是否是页面定义的post参数,非页面定义的参数,提示请求参数溢出
......
}
3.thinkphp调用add()方法时候自增id出现奇数偶数如何处理?#首先,查看mysql当前数据库自增长的步长?
SHOW VARIABLES LIKE 'auto_inc%';
#然后,查看结果 auto_increment_increment 的值是否等于 1 ,如果是1代表以1递增,如果是2代表以2递增......
#最后设定每次增长步长
SET @auto_increment_increment=1;
#若想在表中的主键id以奇数出现,则设置为 SET @auto_increment_increment=奇数; 例如=3
#若想在表中的主键id以奇数出现,则设置为 SET @auto_increment_increment=偶数; 例如=2
#若想在表中的主键id以顺序增长1出现,则设置为 SET @auto_increment_increment=1;
php post 过滤,ThinkPHP技巧-POST过滤相关推荐
- 垃圾邮件过滤 php,垃圾邮件过滤功能
· 系统内置无需第三方系统配合 · 启用发信(SMTP)认证,关闭匿名转发 · 启用发本域邮件也需发信(SMTP)认证 · IP 黑名单过滤 · IP 白名单 · IP 灰名单,来自于名单中IP的SM ...
- jq选择器||基本选择器 层级选择器 属性选择器 过滤选择器 表单过滤选择器
基本选择器 层级选择器 属性选择器 过滤选择器 表单过滤选择器 1. 基本选择器 1. 标签选择器(元素选择器) * 语法: $("html标签 ...
- php 标点符号,php 过滤英文标点符号及过滤中文标点符号代码
php 过滤英文标点符号及过滤中文标点符号代码 发布于 2014-12-22 20:19:00 | 733 次阅读 | 评论: 0 | 来源: 网友投递 PHP开源脚本语言PHP(外文名: Hyper ...
- python协同过滤算法_协同过滤算法介绍及算法实现
一.协同过滤算法简介 协同过滤算法是一种较为著名和常用的推荐算法,它基于对用户历史行为数据的挖掘发现用户的喜好偏向,并预测用户可能喜好的产品进行推荐.也就是常见的"猜你喜欢",和& ...
- php去除英文和标点,php实现过滤中文标点符号及过滤英文标点符号的示例代码
php实现过滤中文标点符号及过滤英文标点符号的示例代码 分类:PHP_Python| 发布:佚名| 查看: | 发表时间:2014/8/18 php 过滤英文标点符号 过滤中文标点符号 代码 代码如下 ...
- Django rest framework之限流Throttling、内置过滤功能及第三方过滤功能及分页Pagination
文章目录 1.限流Throttling 1.1.自定义频率类 1.1.1.编写频率类 1.1.2.全局使用 1.1.3.局部使用 1.2.内置频率类 1.2.1.根据用户ip限制 1.2.2.限制匿名 ...
- mysql 危险字符_PHP过滤指定字符串,过滤危险字符
安全过滤函数,用于过滤危险字符 function safe_replace($string) { $string = str_replace(' ','',$string); $string = st ...
- php 采集 过滤,dedecms采集过滤规则 万能采集过滤代码 常用过滤
织梦dedecms自带的采集系统确实很不错,可以免去一些手工添加信息的麻烦,设置一下dede采集规则.采集点,然后点采集,OK,几百篇文章就搞定了! 呵呵,确实很省事的!下面介绍几种常用采集规则的过滤 ...
- Windows驱动_文件系统微小过滤驱动之三微小过滤驱动的操作
30岁左右的程序员,现在除了奋斗以外,要开始考虑下自己的身体了,到了这个年纪,不能像之前20岁左的年轻人一样不顾一切去拼搏.现在的自己,应该更讲究效率.所以选择公司也很重要.同样,运动开始变得必需了, ...
最新文章
- 起售价近5500,嘲讽了iPhone X的华为Mate 10却没用上人脸识别
- 何时使用cla(),clf()或close()在matplotlib中清除图?
- 实验2 递归和分治法(二分查找)
- 【面试】 C++ 面试题笔记(不定期更新)
- html如何插入swf视频,Html插入SWF方法
- php语句过滤掉html标签_php过滤html标签
- 大厂技术文档:Python基础+爬虫+数据分析+面试经精选
- js的事件循环机制,同步和异步,以及宏任务与微任务的执行顺序
- sublime text3的一些小技巧记录(配gif图)
- 查询结果取交集_MySQL Using intersect 交集
- 10个CSS技巧,极大提升用户体验
- “数字孪生”语境下的城市:拼图模式与航向之争
- 苹果手机删除的视频怎么找回
- 未来的量子计算机模型,量子计算机上量子人工生命模型
- Unity将当前场景渲染到图片上并导出图片(本地/服务器)
- MMA-mathematica绘图
- Linq 介绍(二)
- 千里独行Thousands of miles to ride alone
- 什么是 RADIUS 服务器?
- 永磁同步电机(PMSM)参数辨识(一)