我正在开发一个基于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数据也不是问题,只需调用一个简单的测试脚本:
<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
中显示一个空的POST数组。
问题与realurl
已停用相同。
现在我的问题是,在typo3重写/重定向请求中是否还有其他内容可能会丢失POST数据?正如我所说,我的本地系统工作,我真的找不到这两者之间的任何配置差异......(但我还远远没有理解错误的CMS内部工作的每一点)
答案 0 :(得分:2)
它现在终于有效了,对于网络服务器来说这是一个相当愚蠢的简单问题。
它重写了对此站点的请求以使用http://example.de
作为引用者,而Typo3生成的链接使用http://www.example.de
(因为我将其作为config.baseUrl
输入)。
正常页面没有任何问题,但每次在Typo3中使用POST
- 形式时都会导致POST
- 数据未被发送,导致上述错误来自Powermail(和所有其他电子邮件插件)。
所以解决方案是将config.baseUrl
设置为http://example.de
,与网络服务器重写请求完全相同。
我希望也许这可以帮助其他人有一天遇到类似的问题;)