PHP防止刷新重复提交页面的示例代码

5年以前  |  阅读数:532 次  |  编程语言:PHP 

PHP防止刷新重复提交页面的示例代码

作为phper,我们在开发和学习php过程中,难免要经常的接受处理表单数据,然而处理表单的时候总会有一个问题,困扰大家,刷新页面重复提交的问题。如何防止刷新页面重复提交呢?

PHP防止刷新重复提交,通过不断刷新(Refresh or Reload)表单提交页面,可以重复提交表单内容,可以利用 PHP 的 Session 来避免这一点,Session 保存在服务器端,在 PHP 过程中改变 Session 变量的值后,即保存在服务器端,下次访问这个变量时,得到是新赋的值,所以,可以用一个 Session 变量记录表单提交的次数,大于1时,就不再处理表单中的数据。

核心代码

以下为引用内容:


    if (isset($_POST['action']) && $_POST['action'] == 'submitted') { 
    session_start(); 
    if (isset($_SESSION['submit_time']) && $_SESSION['submit_time']==0){ 
    print '<pre>'; 
    print_r($_POST); 
    print '<a href="'. $_SERVER['PHP_SELF'] .'">Please try again</a>'; 
    print '</pre>'; 
    $_SESSION['submit_time']=1; 
    echo $_SESSION['submit_time']; 
    unset($_SESSION['submit_time']);
    } else { 
    print '<pre>'; 
    print_r($_POST); 
    echo "However you have submitted"; 
    print '</pre>'; 
    } 
    } else { 
    session_start() or dir("session is not started"); 
    $_SESSION['submit_time']= 0; 
    // isset($_SESSION['submit_time']) or die ("session var is not created"); 
    // echo $_SESSION['submit_time']; 
    ?> 
    <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="POST"> 
    Name: <input type="text" name="personal[name]"><br> 
    Email: <input type="text" name="personal[email]"><br> 
    Beer: <br> 
    <select multiple name="beer[]"> 
    <option value="warthog">Warthog</option> 
    <option value="guinness">Guinness</option> 
    </select><br> 
    <input type="hidden" name="action" value="submitted"> 
    <input type="submit" name="submit" value="submit me!"> 
    </form> 
    <?php 
    } 
    ?>
 相关文章:
PHP分页显示制作详细讲解
SSH 登录失败:Host key verification failed
获取IMSI
将二进制数据转为16进制以便显示
获取IMEI
文件下载
贪吃蛇
双位运算符
PHP自定义函数获取搜索引擎来源关键字的方法
Java生成UUID
发送邮件
年的日历图
提取后缀名
在Zeus Web Server中安装PHP语言支持
让你成为最历害的git提交人
Yii2汉字转拼音类的实例代码
再谈PHP中单双引号的区别详解
指定应用ID以获取对应的应用名称
Python 2与Python 3版本和编码的对比
php封装的page分页类完整实例