下面文章介绍了如下几个问题的解决方法仅供参考:

问题:

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过滤相关推荐

  1. 垃圾邮件过滤 php,垃圾邮件过滤功能

    · 系统内置无需第三方系统配合 · 启用发信(SMTP)认证,关闭匿名转发 · 启用发本域邮件也需发信(SMTP)认证 · IP 黑名单过滤 · IP 白名单 · IP 灰名单,来自于名单中IP的SM ...

  2. jq选择器||基本选择器 层级选择器 属性选择器 过滤选择器 表单过滤选择器

    基本选择器 层级选择器 属性选择器 过滤选择器 表单过滤选择器 1. 基本选择器        1. 标签选择器(元素选择器)                 * 语法: $("html标签 ...

  3. php 标点符号,php 过滤英文标点符号及过滤中文标点符号代码

    php 过滤英文标点符号及过滤中文标点符号代码 发布于 2014-12-22 20:19:00 | 733 次阅读 | 评论: 0 | 来源: 网友投递 PHP开源脚本语言PHP(外文名: Hyper ...

  4. python协同过滤算法_协同过滤算法介绍及算法实现

    一.协同过滤算法简介 协同过滤算法是一种较为著名和常用的推荐算法,它基于对用户历史行为数据的挖掘发现用户的喜好偏向,并预测用户可能喜好的产品进行推荐.也就是常见的"猜你喜欢",和& ...

  5. php去除英文和标点,php实现过滤中文标点符号及过滤英文标点符号的示例代码

    php实现过滤中文标点符号及过滤英文标点符号的示例代码 分类:PHP_Python| 发布:佚名| 查看: | 发表时间:2014/8/18 php 过滤英文标点符号 过滤中文标点符号 代码 代码如下 ...

  6. 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.限制匿名 ...

  7. mysql 危险字符_PHP过滤指定字符串,过滤危险字符

    安全过滤函数,用于过滤危险字符 function safe_replace($string) { $string = str_replace(' ','',$string); $string = st ...

  8. php 采集 过滤,dedecms采集过滤规则 万能采集过滤代码 常用过滤

    织梦dedecms自带的采集系统确实很不错,可以免去一些手工添加信息的麻烦,设置一下dede采集规则.采集点,然后点采集,OK,几百篇文章就搞定了! 呵呵,确实很省事的!下面介绍几种常用采集规则的过滤 ...

  9. Windows驱动_文件系统微小过滤驱动之三微小过滤驱动的操作

    30岁左右的程序员,现在除了奋斗以外,要开始考虑下自己的身体了,到了这个年纪,不能像之前20岁左的年轻人一样不顾一切去拼搏.现在的自己,应该更讲究效率.所以选择公司也很重要.同样,运动开始变得必需了, ...

最新文章

  1. 起售价近5500,嘲讽了iPhone X的华为Mate 10却没用上人脸识别
  2. 何时使用cla(),clf()或close()在matplotlib中清除图?
  3. 实验2 递归和分治法(二分查找)
  4. 【面试】 C++ 面试题笔记(不定期更新)
  5. html如何插入swf视频,Html插入SWF方法
  6. php语句过滤掉html标签_php过滤html标签
  7. 大厂技术文档:Python基础+爬虫+数据分析+面试经精选
  8. js的事件循环机制,同步和异步,以及宏任务与微任务的执行顺序
  9. sublime text3的一些小技巧记录(配gif图)
  10. 查询结果取交集_MySQL Using intersect 交集
  11. 10个CSS技巧,极大提升用户体验
  12. “数字孪生”语境下的城市:拼图模式与航向之争
  13. 苹果手机删除的视频怎么找回
  14. 未来的量子计算机模型,量子计算机上量子人工生命模型
  15. Unity将当前场景渲染到图片上并导出图片(本地/服务器)
  16. MMA-mathematica绘图
  17. Linq 介绍(二)
  18. 千里独行Thousands of miles to ride alone
  19. 什么是 RADIUS 服务器?
  20. 永磁同步电机(PMSM)参数辨识(一)

热门文章

  1. Jenkins部署Python项目实战
  2. 专家:香港拥有人民币资产配置独特优势
  3. java 枚举(enum) 详细用法
  4. 让MySQL支持Emoji表情 mysql 5.6
  5. android 如何将电话簿SDN数字和其他普通的数字混合在一起?
  6. 学习:erlang开源项目。
  7. Getting Started with CocoaPods
  8. Linux操作系统下软件的安装方法大全
  9. Conficker-AE的处理方法
  10. caffe:Data 层