表单提交后取消设置后变量

roo*_*unk 10 php form-submit

有没有办法做到这一点?基本上,如果有人在提交表单一次后按下刷新,我不希望再次提交表单.在这种情况下,浏览器会询问,您是否要再次提交表单.会不会unset($_POST['username'])有任何帮助是这种情况?

rai*_*ace 10

一些海报已经提到过post/redirect/get是一个不错的选择.

我能想到的另一种方法是在dostuff.php页面中设置一个会话,以指示发布已经完成.每次检查此会话var以查看是否由于页面刷新而再次加载页面.

<?php
    session_start();
    if(isset($_SESSION['indicator'])) 
    {
        /*
        dont do anything because session indicator says 
        that the processing was already done..

        you might want to redirect to a new url here..          
        */
    }   
    else
    {

        /*
        first set session indicator so that subsequent 
        process requests will be ignored
        */
        $_SESSION['indicator'] = "processed"; 

        //process the request here..
    }
    ?>
Run Code Online (Sandbox Code Playgroud)

在您重定向到的页面中,取消设置会话var,以便可以重新重新提交表单,使其成为新的后期操作.这将允许新的表单发布,但会阻止页面刷新后的后期操作

  • 很抱歉这么晚才将其标记为正确的答案.经过很长一段时间,我只是经历了我的旧问题/答案.谢谢. (2认同)