我在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>
当我输入数据并提交数据时,页面会在我打印数据时显示数据。但是当我刷新页面时数据仍然存在,我希望只有在我点击提交时才能显示数据。
有人可以帮助我吗? 我做错了什么。
答案 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仅存储下一个请求的会话数据。