PHP保持插入刷新

时间:2017-02-03 18:52:45

标签: php html sql mysqli

我目前正在为一个学校项目编制一个网站,我必须在其中组织每日时间表/报告。

以下情况: 我在PHP中插入以下内容:

$sqlinserttb = "INSERT INTO tagesberichte (`TbID`, `Tagesberichte`, `Datum`) VALUES ('DEFAULT', '".$tagesbericht."', '".$datum."');";

如果提交已被点击,则会将其插入。 问题是当我按F5或手动刷新浏览器时,页面会再次使用最后使用的输入插入它。

我错过了什么?

3 个答案:

答案 0 :(得分:0)

从您解释的用例中,我了解到您有一个自我提交表单(提交到同一页面并处理请求)。您可以将请求变量存储在php sessions中,然后检查传入的请求数据与会话中的传入请求数据(如果会话存在)。如果相同,则显示错误消息,否则执行插入操作,然后使用您的请求数据设置会话。

答案 1 :(得分:0)

如果刷新URL,所有相应的数据将被发送到用户自己发布的php脚本。要处理它,你可以: 1.使用post方法将结果发送到服务器。它不会排除刷新页面的情况,但大多数浏览器会询问用户“你真的想要将所有数据重新发送到服务器吗?” 2.在php脚本继续输入页面后使用重定向。在这种情况下,浏览器将不会重新发送数据。但是,用户仍然可以返回到previos页面并再次重新发送数据。 你还可以提供某种'meta http-equiv =“Cache-Control”...'变量来使页面过期

答案 2 :(得分:0)

插入完成后使用header("location: <path to your self-submitting form>");,这样就会显示一个新的表单,刷新不会导致再次提交。