TYPO3 8.7/9.5 pibase $_POST 不可用?

TYPO3 8.7/9.5 pibase $_POST not available?

我正在修改一些旧的 typo3 项目扩展。问题是我们必须保留那个 pibase 结构,因为它无论如何都受核心支持。因此该扩展执行一些简单的 CRUD 操作,在我的例子中是基于通过 $_POST 提交的值的插入。所以旧的扩展只是直接使用 $_POST 不再支持,我猜是因为 PSR-7 Request/Response 实现。

但是现在我如何访问提交的值,因为 $_POST 不再可用而且我也没有 $this->request 因为扩展扩展了 AbstractPlugin。

编辑: 我们也不在 main() 里面 代码块在 sendMail()

我也不知道 sendMail 是从哪里调用的,因为没有 pibase 的可用文档。

非常感谢帮助

您可以使用 \TYPO3\CMS\Core\Utility\GeneralUtility::_GP('name')

访问 GET 和 POST 参数

但出于安全原因,可能会被过滤掉。

我们有 cHashes 的概念,它可以保护站点免受注入参数的侵害。所有参数都必须是已知的,并由散列来保护。 TYPO3 通过 cHash 来记忆参数。如果给出了 cHash,则从数据库中获取参数并忽略提供给服务器的参数。

对于表单(如 ext:formext:powermail),没有生成 cHashes,可以处理表单的字段。

如果您有 'naked' 个表单和纯 php 文件要处理,您应该更改为表单扩展,您可以在其中使用现有的完成器并可以添加额外的完成器(和验证器),对于这些修整器,表单数据是安全的,不会被注入,您不需要访问 $_GET$_POST

编辑:
这里是 question/answer 如何禁用单一形式值的 cHash 计算: