为了账号安全,请及时绑定邮箱和手机立即绑定

如何防止页面刷新时重新提交表单(F5/CTRL+R)

如何防止页面刷新时重新提交表单(F5/CTRL+R)

qq_笑_17 2019-06-17 14:23:51
如何防止页面刷新时重新提交表单(F5/CTRL+R)我有一个简单的表单,它将文本提交到我的SQL表中。问题是,在用户提交文本之后,他们可以刷新页面,数据可以再次提交,而无需再次填写表单。在提交文本之后,我可以将用户重定向到另一个页面,但我希望用户保持在同一个页面上。我记得我读过一些关于给每个用户一个唯一的会话id,并将它与另一个解决了问题的值进行比较的东西,但是我忘记了它在哪里。
查看完整描述

3 回答

?
POPMUISE

TA贡献1765条经验 获得超5个赞

您确实应该使用POST重定向GET模式来处理这个问题,但是如果您以某种方式结束了PRG不可行的位置(例如,表单本身是包含的,防止重定向),您可以散列一些请求参数,以便根据内容生成一个字符串,然后检查您还没有发送它。

//create digest of the form submission:

    $messageIdent = md5($_POST['name'] . $_POST['email'] . $_POST['phone'] . $_POST['comment']);//and check it against the stored value:

    $sessionMessageIdent = isset($_SESSION['messageIdent'])?$_SESSION['messageIdent']:'';

    if($messageIdent!=$sessionMessageIdent){//if its different:          
        //save the session var:
            $_SESSION['messageIdent'] = $messageIdent;
        //and...
            do_your_thang();
    } else {
        //you've sent this already!
    }


查看完整回答
反对 回复 2019-06-17
  • 3 回答
  • 0 关注
  • 2619 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信