Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >解决 php提交表单到当前页面,刷新会重复提交 的问题

解决 php提交表单到当前页面,刷新会重复提交 的问题

作者头像
吃猫的鱼Code
发布于 2023-02-02 02:14:03
发布于 2023-02-02 02:14:03
2.4K01
代码可运行
举报
运行总次数:1
代码可运行

解决 php提交表单到当前页面,刷新会重复提交

今天在写php程序的时候,发现一个问题,就是post提交到本页的表单数据,刷新后会反复提交。因此向群友请教。最终,得到了解决。如下:

只需要在表单里生成一个token(随机字符串),然后用个input装起来,设置hidden。第一次post处理完数据后把token存入session,接下来每次post判断一下token跟session中的一不一样,一样则说明数据处理过了。

然后给出一段代码 示例

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<?php
session_start();
 
//读取服务器端的session_id,如果没有的话赋值为-1
$session_id = empty($_SESSION['session_id']) ? -1 : $_SESSION['session_id'];
 
//读取客户端的post_id,如果没有的话赋值为-2
$post_id = empty($_POST['post_id']) ? -2 : $_POST['post_id'];
 
//判断两个id是否相同,相同则说明已经处理过一次,不同则进行处理
if($session_id == $post_id){
    
    echo "<h1>已经处理过了,不管了</h1>";
    
}else{
    
    //如果页面还没有提交过表单,则显示表单,否则处理post过来的数据
    if($post_id == -2){        
?>
<html>
    <body>
        <form action="index.php" method="post">
            <input type="text" hidden="hidden" name="post_id" id="" value="<?php echo rand(1, 999999); ?>" />
            <input type="text" name="test" id="test" value="" />
            <input type="submit" value=""/>
        </form>
    </body>
</html>    
<?php        
    }else{
        
        echo "<h1>正在处理</h1>";
        
        //处理过后吧post_id存入session,方便下次比较
        $_SESSION['session_id'] = $post_id;
        
    }
 
}
?>

最后,如果你有更好的解决方法,欢迎留言!学习学习~

本文共 274 个字数,平均阅读时长 ≈ 1分钟

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
用php怎么写一个用户注册登录的页面呢?
想写就会尽快去写。如果用php写了就一定要用nodejs写出来啊,不写是小狗啊! 补充一下,想要实现的功能: 1.用户名重复检测 2.检测信息填写是否完整 3.邮箱是否已经被注册 4.实现ajax无刷新 5.注册成功后跳转到一个index导航页面,并且右上角显示用户名 6.index导航页面中有导航栏,分别是:首页(显示文章) 发布文章页面(文章实现可编辑)、可评论,可分享、可赞... 7.密码长度检测并提示 html文件叫1.html,文件代码: <!DOCTYPE html> <html> <head>
用户1749219
2018/05/16
4.9K0
(防抖) 前后端防重复提交常用的那些方法
友儿
2023/10/21
9300
原生php实现自定义表单(基础类型)(特色:防止重复提交 防止输出空数据等等功能)
-- phpMyAdmin SQL Dump -- version 4.5.1 -- http://www.phpmyadmin.net -- -- Host: 127.0.0.1 -- Generation Time: 2022-03-31 14:41:20 -- 服务器版本: 10.1.13-MariaDB -- PHP Version: 5.6.21 SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO"; SET time_zone = "+00:00"; /*!4010
贵哥的编程之路
2022/05/06
5630
原生php实现自定义表单(基础类型)(特色:防止重复提交 防止输出空数据等等功能)
防止Web表单重复提交的方法总结
在Web开发中,对于处理表单重复提交是经常要面对的事情。那么,存在哪些场景会导致表单重复提交呢?表单重复提交会带来什么问题?有哪些方法可以避免表单重复提交?
编程随笔
2019/09/11
4.9K0
防止Web表单重复提交的方法总结
【黄啊码】PHP如何防止重复提交
防抖(Debounce)是一种防止重复提交的策略,它通过延迟一定时间来合并连续的操作,以确保只执行一次。
黄啊码
2023/12/18
3430
在 PHP 中使用和管理 Session
与 Cookie 一样,Session 技术也是用于解决 HTTP 协议无状态的问题,不过,与 Cookie 数据保存在客户端不同,Session 数据存储在服务端,然后通过分配一个全局唯一的 ID 与特定用户关联(通常在用户认证通过后分配),但 Session 又与 Cookie 紧密关联,因为这个 Session ID 通常会存储到 Cookie 中,在其生命周期内,用户发起请求时就会带上它,这样服务端通过解析存储在 Cookie 中的 Session ID 就能识别特定的客户端用户,并返回与之关联的 Session 数据,比如前面提到的电商网站中的购物车数据。
学院君
2020/08/13
3.1K0
咱妈说别乱点链接之浅谈CSRF攻击
serena
2017/04/27
5.2K8
咱妈说别乱点链接之浅谈CSRF攻击
PHP+MYSQL的使用(注册页面)3
第二核心是判断他是否注册成功的关键在于他是否密码和确认密码的一致性,如果一致,则成功,否则就重新输入把 //这里在于告诉他你的第二次输入的密码与第一次输入的密码不一样
贵哥的编程之路
2020/10/28
1.3K0
JavaWeb学习(1) 使用Session和Token防止表单重复提交
前言 以前在很多p2p网站中,都有新手领取红包的活动。这样的红包链接或多或少都有很多的漏洞,就是表单可以重复提交。这样的话,对那些p2p网站或者其他类似的网站造成很大的损失。Fiddler大家都不陌生吧,就是一个抓包软件。我们先拦截url请求,Shift+R,填入压力测试的次数,然后释放,就会造成很多次的url访问请求,这样的结果很容易造成表单重复提交。那么我们的今天主题就是如何使用Session和Token防止表单重复提交 ---- 表单重复提交例子 在我们写网站的时候,肯定写过留言板的功能,但是肯定对重
用户2032165
2018/06/05
1.5K0
php实现带权限的增删改查功能
原生php实现简易的招聘网站:逻辑流程如下: 第一:boss能增删改查(招聘内容)。求职者只能看招聘内容.(权限的不同) 第二:不登录不能查看。必须登录某个账号才能查看. 第三:防止重复提交 防止输出空数据 第四:多用户的哦
贵哥的编程之路
2022/10/24
2.8K0
php实现带权限的增删改查功能
java后端解决重复提交问题
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/zwb19940216/article/details/78151899
林老师带你学编程
2019/05/26
1.1K0
php案例 解决cookie失效后使用session的问题
session比cookie安全。因为cookie是把整个cookiekey=>value都存储在浏览器上面。而session只是在浏览器上面放一个ID。数据都在数据库中,所以就算sessionid被获取利用,但是session中的数据并不会被恶意程序获取,这一点相对cookie来说就安全了一些。
贵哥的编程之路
2022/09/29
1.2K0
php案例 解决cookie失效后使用session的问题
解决分布式表单重复提交问题
3.1 前端解决办法:通过前端的方法将提交按钮变灰。对于前端的办法这里就不做演示了,因为前端的控制虽然能够防止数据的重复提交但是治标不治本。这里主要介绍第二种方法。
林老师带你学编程
2019/05/25
7700
PHP的安全性问题,你能说得上几个?
所谓SQL注入,就是通过把SQL命令插入到Web表单提交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令。具体来说,它是利用现有应用程序,将(恶意)的SQL命令注入到后台数据库引擎执行的能力,它可以通过在Web表单中输入(恶意)SQL语句得到一个存在安全漏洞的网站上的数据库,而不是按照设计者意图去执行SQL语句。比如先前的很多影视网站泄露VIP会员密码大多就是通过WEB表单递交查询字符暴出的,这类表单特别容易受到SQL注入式攻击.
全栈程序员站长
2021/12/23
8590
PHP的安全性问题,你能说得上几个?
PHP实现用户登录注册功能
初学php做了一些比较常见且有用的页面,放在上面记录一下咯 我是用了bootstrap框架里面的模态框做注册登陆页面,这样页面比较美观 页面效果:
用户8099761
2023/05/11
2.1K0
PHP实现用户登录注册功能
PHP全栈学习笔记4
JavaScript是网景公司开发的,是一种基于对象和事件驱动并具有安全性能的解释型脚本语言。
达达前端
2019/07/03
2.9K0
PHP全栈学习笔记4
JavaWeb防止表单重复提交的几种方式
(4)、ajax提交加锁 采用ajax方式提交表单时,设置一个布尔变量(true/false),当然其他类型变量也可以。初始时为true可以提交,在前端向服务器发出请求后,服务端响应结果没有回来之前将该值置为false,正常响应时再置为true。
全栈程序员站长
2022/08/04
2.4K0
相关推荐
用php怎么写一个用户注册登录的页面呢?
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验