文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>php 阻止表单重复提交

php 阻止表单重复提交

时间:2009-04-19  来源:xh_terry


<?php
session_start();
/**
     * 检查表单是否被重复提交
     * 相同内容的表单在设定时间内只能提交1次
     * @param int $iTimeOffset
     * @return bool
     */
function checkFormSubmit($iTimeOffset=60){
    // 取得表单的标识
    $idForm = md5(serialize($_POST));
    // 是否需要表单提交检察
    $iFormCheck = true;
    if (isset($_SESSION['formSubmitCheck'])){
        // 删除过期的表单标识
        foreach (array_keys($_SESSION['formSubmitCheck']) as $val){
            if (time() > $val){
                unset($_SESSION['formSubmitCheck'][$val]);
            }
        }
    }else {
        $_SESSION['formSubmitCheck'] = array();
        $iFormCheck = false;
    }
    if ($iFormCheck == true){
        // 检查是否有重复标识的提交记录
        foreach ($_SESSION['formSubmitCheck'] as $val){
            if ($val == $idForm){
                return false;
            }
        }
    }
    // 保存表单标识
    $_SESSION['formSubmitCheck'][(time()+$iTimeOffset)] = $idForm;
    return true;
}

if (count($_POST) > 0){
    if (checkFormSubmit()===true){
        echo '表单提交成功';
    }else {
        echo '表单重复提交';
    }
}
?>

<form method="POST">
    <input type="text" name="a">
    <input type="text" name="b">
    <textarea name="c"></textarea>
    <input type="submit" name="btnSubmit" value="确认">
</form>
<?php
var_dump($_POST);
var_dump($_SESSION);
?>
相关阅读 更多 +
排行榜 更多 +
辰域智控app

辰域智控app

系统工具 下载
网医联盟app

网医联盟app

运动健身 下载
汇丰汇选App

汇丰汇选App

金融理财 下载