防止刷新时重复提交表单
在 Web 应用程序开发中,经常会遇到提交表单后刷新页面导致出现问题的情况。意外的多次提交。当服务器端代码未正确处理表单提交处理时,可能会发生此行为。
考虑以下示例,其中表单旨在在提交时将数据插入数据库:
<?php if (isset($_POST['name'])) { // Database operation to insert $_POST['name'] 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>
提交表单后,数据成功插入数据库,并显示“操作完成”消息。但如果后续刷新页面,会重复表单提交,导致数据再次插入。
解决方案:表单提交成功后重定向
避免对于这个问题,成功处理表单提交后必须重定向到另一个页面。这可确保刷新页面时加载的是新页面,而不是同一个表单提交页面。
重定向示例:
<?php if (isset($_POST['name'])) { // Database operation to insert $_POST['name'] header('Location: /path/to/record'); exit; } ?>
通过添加标头重定向,代码可确保数据库操作完成后,重定向到新路径。如果用户刷新页面,他们将被定向到新路径,而不是表单提交页面。
重定向的好处:
以上是如何防止刷新时重复提交表单?的详细内容。更多信息请关注PHP中文网其他相关文章!