我正在寻找一种干净的方法来使用 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/