php - 检测表单是否已使用 PHP 提交

标签 php validation forms

我正在寻找一种干净的方法来使用 PHP 处理表单,该方法可以验证和缓存数据,但不需要将 PHP 与表单 HTML 混合。基本上,我希望能够用纯 HTML 编写一个表单,并在该表单到达目的地的途中拦截该表单,对其进行处理,然后让数据顺利传输,或者返回到发送验证错误和缓存结果的表单带着它回来。

这都是我正在开发的一个小框架的一部分,作为学习的辅助。我最初的计划是使用 Routing 对象来嗅探 GET 和 POST 数据,但该数据并不总是表明表单的存在。

我一直在查看this list of HTTP Headers但我没有看到任何可以帮助的东西。尽管我以前从来没有费心去查看 HTTP header ,所以我很容易会错过一些东西。

或者还有其他可靠的方法来检测表单提交吗?

最佳答案

当涉及到 GET 请求时,没有通用的方法来区分表单提交和简单链接。

使用纯 HTML,只有表单可以生成 POST 请求,因此对 REQUEST_METHOD 进行过滤可能是一个可行的解决方案。 (但是,这显然不会捕获 GET 请求,而 AJAX 也可以生成 POST 请求,所以...)

如果你控制表单,我建议添加类似的内容

<input type="hidden" name="this_is_a_form" />

每种形式。 (为了获得奖励积分,您可以拦截表单 HTML 并动态添加上述行。)

关于php - 检测表单是否已使用 PHP 提交,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1184885/

相关文章:

javascript - AngularJS 从 Laravel 数据库中删除数组项

php - 如何每 8 小时 1 分钟运行一次 CRON

c# - 如何创建 WPF 验证规则以确保两个文本字段具有相同的值?

javascript - 如何根据javascript中的条件控制表单操作?

javascript - 当我使用 Javascript 重新加载表单时,我无法保留之前保存的弹出表单数据 - jointJS

forms - 如何构建在页面上显示结果的 Drupal 6 用户表单?

php - 如何从用户获取多行输入并在 PHP 中显示相同内容

php - Visual Studio Code,HTML 标记未在 PHP 文件中配对和突出显示

validation - 验证失败后输入值未清除

php - Zend Framework 2 自定义表单验证器