页面刷新POST数组不会为空

时间:2015-10-24 15:16:15

标签: php

我在php中创建了一个表单,其中action为与POST

相同的页面URL和方法

    <?php
            if(isset($_POST['submitted']) && $_POST['submitted'] != ''){
                    echo $_POST['fname'];
                    echo "<br />";
                    echo $_POST['lname'];
                    echo "<br />";
                    echo $_POST['submitted'];
            }
    ?>
    <h1>testing...</h1>

    <form action="test.php" method="POST">
            First Name: <input type="text" name="fname" />
            Last Name: <input type="text" name="lname" />
            <input type="submit" name="submitted" />
    </form>

当我输入数据并提交数据时,页面会在我打印数据时显示数据。但是当我刷新页面时数据仍然存在,我希望只有在我点击提交时才能显示数据。

有人可以帮助我吗? 我做错了什么。

2 个答案:

答案 0 :(得分:0)

AFAIK。这是使用f5按钮重复上一次请求的标准浏览器行为。

我理解你需要什么来阻止它。这是为了防止“垃圾邮件”。

因此,您需要了解首次提交已经完成。

作为测试创意,您可以为发送按钮添加时间戳,并在发送时进行检查。在这种情况下,来自按钮和发送的时间戳将不同于刷新

答案 1 :(得分:0)

我想出了

 0){         $ _SESSION [&#39; shout&#39;] = $ _POST [&#39; shout&#39;];         标题(&#34; HTTP / 1.1 303见其他&#34;);         标题(&#34;位置:http:// $ _ SERVER [HTTP_HOST] /echochamber.php");         死();     }     否则if(isset($ _ SESSION [&#39; shout&#39;])){         $ echoedShout = $ _SESSION [&#39; shout&#39;];         / *             在这里放置影响数据库的代码。         * /         session_unset();         session_destroy();     } ?&GT;

或者我在codeigniter中使用set_flashdata执行此操作,该set_flashdata仅存储下一个请求的会话数据。