当前位置: 首页 > news >正文

php防止页面重复刷新或者重复提交

2.核心代码

显示的逻辑:

//获取防止刷新的唯一标识符,start
$intFlag = substr(md5(time()),6);
$strFlag = 'BAOXIAOSS_'.$my_user_id.$intFlag;
$smarty->assign('check_is_agin_post', $strFlag);
//获取防止刷新的唯一标识符,end注意:前端页面提交加入这个变量。下面是提交的逻辑//校验是否重复提交,start
if(!empty($post_data['check_is_agin_post']))
{$check_is_agin_post = $_COOKIE[$post_data['check_is_agin_post']];if(!empty($check_is_agin_post)){die('提交重复');}setcookie($post_data['check_is_agin_post'], 1, time()+10);
}
//校验是否重复提交,end$request_url = db_url::getRequestUrlData();
$links = array(array('href' =>$request_url['HTTP_REFERER'], 'text' => '返回')
);

3.类的方法

<?phpclass db_url
{static public $status_arr = array();//获取请求的urlstatic function getRequestUrl(){//获取当前完整url,为了清晰,多定义几个变量,分几行写$scheme = $_SERVER['REQUEST_SCHEME']; //协议$domain = $_SERVER['HTTP_HOST']; //域名/主机$requestUri = $_SERVER['REQUEST_URI']; //请求参数//将得到的各项拼接起来$currentUrl = $scheme . "://" . $domain . $requestUri;return $currentUrl; //传回当前url}//返回请求URl的多个数据static function getRequestUrlData(){//获取当前完整url,为了清晰,多定义几个变量,分几行写$scheme = $_SERVER['REQUEST_SCHEME']; //协议$domain = $_SERVER['HTTP_HOST']; //域名/主机$requestUri = $_SERVER['REQUEST_URI']; //请求参数//将得到的各项拼接起来$currentUrl = $scheme . "://" . $domain . $requestUri;$return_data = ['REQUEST_SCHEME'=>$_SERVER['REQUEST_SCHEME'],'HTTP_HOST'=>$_SERVER['HTTP_HOST'],'HTTP_REFERER'=>$_SERVER['HTTP_REFERER'],'REQUEST_URI'=>$_SERVER['REQUEST_URI'],'url'=>$currentUrl,];return $return_data; //传回当前url}//获取url的参数返回数组static function getParams($url){$arr = parse_url($url);$arr_query = self::convertUrlQuery($arr['query']);return $arr_query?$arr_query:[];}static function convertUrlQuery($query){$queryParts = explode('&', $query);$params = array();foreach ($queryParts as $param) {$item = explode('=', $param);$params[$item[0]] = $item[1];}return $params;}/*** 将参数变为字符串* @param $array_query* @return string string 'm=content&c=index&a=lists&catid=6&area=0&author=0&h=0&region=0&s=1&page=1' (length=73)*/static function getUrlQuery($array_query){$tmp = array();foreach($array_query as $k=>$param){$tmp[] = $k.'='.$param;}$params = implode('&',$tmp);return $params;}
}?>

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • Excel表格使用IF条件判断
  • 介绍一下react中虚拟dom和diff算法
  • 第N5周:Pytorch文本分类入门
  • 如何在香港云服务器上优化网站性能?
  • 基于车联网大数据平台的用户驾驶习惯行为画像分析
  • AI学习记录 - 自注意力机制之权重矩阵和查询向量V矩阵的计算方式的补充
  • RCE绕过练习
  • 工厂模式和策略模式区别以及使用
  • STM32第十二节(中级篇):串口通信(第二节)——串口固件库函数以及串口发送和接收代码讲解
  • Nginx与Tomcat的区别
  • 计算机网络部分基础知识
  • 安全无忧!Windows7全补丁旗舰版:集成所有补丁!
  • 【HBZ分享】MYSQL的联合索引 与 覆盖索引
  • 【二叉树进阶】--- 根据二叉树创建字符串
  • LabVIEW光纤水听器闭环系统
  • Angular 响应式表单 基础例子
  • CentOS 7 修改主机名
  • Date型的使用
  • happypack两次报错的问题
  • Java,console输出实时的转向GUI textbox
  • JAVA并发编程--1.基础概念
  • js中的正则表达式入门
  • React中的“虫洞”——Context
  • Theano - 导数
  • vue-cli3搭建项目
  • 不上全站https的网站你们就等着被恶心死吧
  • 动态规划入门(以爬楼梯为例)
  • 那些年我们用过的显示性能指标
  • 一些基于React、Vue、Node.js、MongoDB技术栈的实践项目
  • 再次简单明了总结flex布局,一看就懂...
  • Linux权限管理(week1_day5)--技术流ken
  • 如何正确理解,内页权重高于首页?
  • ​2021半年盘点,不想你错过的重磅新书
  • ​Benvista PhotoZoom Pro 9.0.4新功能介绍
  • ​插件化DPI在商用WIFI中的价值
  • ​创新驱动,边缘计算领袖:亚马逊云科技海外服务器服务再进化
  • ## 基础知识
  • $jQuery 重写Alert样式方法
  • (145)光线追踪距离场柔和阴影
  • (2024.6.23)最新版MAVEN的安装和配置教程(超详细)
  • (安全基本功)磁盘MBR,分区表,活动分区,引导扇区。。。详解与区别
  • (二)Kafka离线安装 - Zookeeper下载及安装
  • (回溯) LeetCode 77. 组合
  • (三)c52学习之旅-点亮LED灯
  • (转)母版页和相对路径
  • ***微信公众号支付+微信H5支付+微信扫码支付+小程序支付+APP微信支付解决方案总结...
  • .bat批处理(八):各种形式的变量%0、%i、%%i、var、%var%、!var!的含义和区别
  • .NET IoC 容器(三)Autofac
  • .net 打包工具_pyinstaller打包的exe太大?你需要站在巨人的肩膀上-VC++才是王道
  • .NET 使用配置文件
  • .NET/C# 解压 Zip 文件时出现异常:System.IO.InvalidDataException: 找不到中央目录结尾记录。
  • .net使用excel的cells对象没有value方法——学习.net的Excel工作表问题
  • //TODO 注释的作用
  • @property python知乎_Python3基础之:property
  • @SuppressWarnings(unchecked)代码的作用