1

我正在开发一个typo3基于 - 的系统(版本 4.7),并试图让联系电子邮件表单工作。发送基于文本的简单电子邮件是相当简单的(姓名、电子邮件、地址和问题文本等一些字段)。我目前使用的插件是powermail.

在我的本地系统版本上测试此表单时,它会将电子邮件发送到我的地址而没有问题 - 但是在实时系统上,它只显示消息

An error occurred while trying to call Tx_Powermail_Controller_FormsController->createAction(). Error: Required property 'form' does not exist.

我已经知道的:

问题似乎是 html 表单没有向POST扩展控制器提交任何数据,因此它没有什么可使用的,并且正在显示该错误......

不是powermail 的问题,使用其他扩展 ( mailformplus,内置form插件 ...) 构建表单有同样的问题:没有发送帖子数据。

通常,该服务器上的 POST-data 也不是问题,调用一个简单的测试脚本,如下所示:

<form method="post" action="test.php?gettest=1" enctype="multipart/form-data">
    <input type="text" name="test" value="" />
    <input type="submit" name="submit" value="Testen" />
</form>

来自不在typo3系统显示的脚本

GET:

array (size=1)
  'gettest' => string '1' (length=1)

POST:

array (size=2)
  'test' => string 'test' (length=4)
  'submit' => string 'Testen' (length=6)

正确地test.php(这只是一个var_dump($_POST/$_GET))。

但是,将上述内容构建为typo3 系统中的页面会显示test.php.

问题与realurl禁用相同。

现在我的问题是,typo3 重写/重定向请求中是否还有其他可能导致 POST 数据丢失的内容?正如我所说,我的本地系统工作正常,我真的找不到这两者之间的任何配置差异......(但我离理解typo3 CMS内部工作的每一点还有很长的路要走)

4

1 回答 1

4

它现在终于可以工作了,这是网络服务器的一个相当愚蠢的简单问题。

它重写了对该站点的请求以http://example.de用作引用者,而使用从 Typo3 生成的链接http://www.example.de(因为我输入的是config.baseUrl)。

普通页面对此没有任何问题,但每次POST在 Typo3 中使用 -form 时,都会导致POST-data 未发送,从而导致 Powermail(以及所有其他电子邮件插件)出现上述错误。

所以解决方案是将 设置config.baseUrlhttp://example.de,与网络服务器重写请求完全相同。

我希望也许有一天这可以帮助其他遇到类似问题的人;)

于 2013-11-18T09:58:27.173 回答