php - 避免因页面刷新而提交的最佳方法

标签 php html forms

我认为这个问题经常发生在网络应用程序开发中。但我会尝试详细解释我的问题。

我想知道如何纠正这种行为,例如,当我有这样一段代码时:

<?
    if (isset($_POST['name'])) {
        ... operation on database, like to insert $_POST['name'] in a table ...
        echo "Operation Done";
        die();
    }

?>

<form action='page.php' method='post' name="myForm">
    <input type="text" maxlength="50" name="name" class="input400" />
    <input type="submit" name="Submit" />
</form>

当提交表单时,数据被插入到数据库中,并生成消息Operation Done。然后,如果我刷新页面,数据将再次插入到数据库中。

如何避免这个问题?任何建议将不胜感激:)

最佳答案

创建操作后不要显示响应;操作完成后重定向到另一个页面。如果有人刷新,他们会刷新您重定向到的 GET 请求页面。

// submit
// set success flash message (you are using a framework, right?)
header('Location: /path/to/record');
exit;

关于php - 避免因页面刷新而提交的最佳方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5690541/

相关文章:

php - Docusign 从模板下载文档

php - 在列表之间拖放项目并将其位置保存在 php 文件中

jquery - css中带有分支的垂直线

css - 菜单在 IE8 中不可见

php - Symfony2 一根 Twig 中的多种形式主题不压倒一切

php - Zend 似乎不想加载我创建的表单

php - LEFT JOIN 在 PHP 中执行时非常慢

html - Webkit 硬件加速渗入页面上的其他元素?

javascript - jQuery 和 Ajax 表单验证

php - 使用 Jquery 和 Ajax 动态填充表单