php - 防止用户在未完成表单的情况下访问提交页面
问题描述
假设我example.com/contact
在example.com/submitted
. 理论上,任何人当前都可以example.com/submitted
直接访问,尽管由于显示的消息这并不理想。7年前有这个问题,但其中的答案不起作用。
理论上,表单页面的内容并不重要,只要它被发布即可。我不想回显提交页面的内容,因为它是完整的。我只需要一些简单的东西,比如推荐人不是example.com/form
或POST
方法。
example.com/submitted
我只需要在用户实际提交某些内容时才允许访问。我已经尝试过 PHP 和 htaccess 方法(首选 PHP),但我发现没有任何效果。在同一页面上处理将消除此问题,但提交的页面包含完全不同的内容。
任何建议都将不胜感激,因为我在任何地方都找不到有效的答案。
解决方案
让您action
的表单example.com/contact
指向,example.org/submitted
以便表单内容发布到您的submitted
页面。
然后,在您的submitted
页面上,检查方法,并重定向到contact
on GET
(或者更好的是,所有不是的POST
):
if ($_SERVER['REQUEST_METHOD'] !== 'POST')
header("Location: http://example.com/contact");
else if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST)) {
// validate input
// save to your CSV
// display `submitted` page
}
推荐阅读
- callbackurl - 什么是 API 的回调 url,以及何时以及如何在 python 中使用它
- python - 在django中打印href的值时需要删除url
- c# - 如何使用 .Net 5 Web Api 在响应中转发跟踪标头?
- javascript - 未捕获的 ReferenceError:addAdresar 未在 HTMLInputElement.onclick 中定义
- typescript - 条件类型中的 Typescript 严格检查类型
- c - 在 C 中通过引用返回
- ios - 使用 iOS 中的动态链接从应用商店安装应用时未获取动态链接推荐代码
- sql - 对 Mongo DB 的 SQL 查询以通过 group by 获取总和
- php - 我无法在 php 中获取我的 datetimepicker 的值
- amazon-web-services - AWS IoT 核心:批量注册失败