PHP刷新,如何在页面刷新时停止再次调用上一个函数?

时间:2011-04-17 15:51:00

标签: php function refresh

我有一个将文件内容导入mySQL并返回结果的函数。如果我刷新页面并单击“是”,它将再次使用相同内容将输出加倍。

我怎样才能阻止这种情况发生?在这种特殊情况下,地址栏中没有URI,但在其他功能上没有。

4 个答案:

答案 0 :(得分:2)

您应该检查数据库中的内容是否存在,如果不存在,请填写它们。否则不要运行该功能。

伪代码:

if !database.containsRecords
  fillDatabase()
end

除此之外,在POST请求后重定向始终是一个好习惯。所以你想要:

fillDatabase();
header("Location page.php");
exit();

答案 1 :(得分:1)

在每个页面加载时查询数据库,看看它是否已经填充。如果已填充,则不要再尝试填充它。

答案 2 :(得分:1)

您应该使用POST-redirect-GET pattern

更新数据库后,将HTTP重定向发送到显示结果的单独页面 刷新浏览器将重新加载该单独的页面。

答案 3 :(得分:0)

我假设您使用POST表单上传文件。 您可以在表单中包含一个带有伪随机唯一ID的隐藏输入字段。 如果用户通过POST重新发送数据,您可以检查是否已处理此请求。 隐藏字段不会保存,因为用户可能会编辑它们,但您可以检测到意外重新提交。