【问题标题】:php - How to prevent auto form submit when page is loaded/refereshed? [duplicate]php - 如何防止页面加载/引用时自动提交表单? [复制]
【发布时间】:2022-01-22 12:28:36
【问题描述】:

我正在为我的班级创建一个需要学生出勤的项目。我正在使用 <input readonly type="date"><input readonly type="time"> 获取出勤日期和时间,并使用 JavaScript 在这些输入上显示当前日期和时间,以防止学生作弊。

如何防止我的表单在页面被第一手加载和/或重新加载时自动提交和插入数据?

<?php

require_once './dba.php';

$status = "";

if(isset($_POST['submit'])) {
    $dt = $_POST['dt'];
    $time = $_POST['time'];

    $query = "INSERT INTO nameOfTable (date, time) VALUES ('$dt', '$time')";

    $d = $conn->prepare($query);

    $d->execute();     

} else {
    $status = "Failed!";
}


?>

【问题讨论】:

  • 您能否分享更多关于实际将数据发送到服务器的部分的信息?仅从我们在您的问题中得到的信息,很难了解它周围的背景。另外,请注意readonly 属性可以通过开发工具轻松删除。你根本不应该依赖它们的价值。
  • 分享了我的代码,看看我在哪里

标签: javascript php html


【解决方案1】:

当您将数据提交到后端时,您需要将用户重定向回原始页面。

提交后,用户将进入 /create 页面,并在每次重新加载时发送相同的数据。因此,在数据库中创建条目后,您需要将用户重定向回例如“/”,这样他就不会意外重新提交。只读字段不会让你免于作弊的学生;)

<form action='/create.php'>
...
</form>

在你的 php 脚本结束时。

// replace with the url of the original submit page.
header("Location: https://example.com/");

【讨论】:

    猜你喜欢
    • 2020-10-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-11
    • 1970-01-01
    • 1970-01-01
    • 2015-01-17
    • 1970-01-01
    相关资源
    最近更新 更多