MODx eForm内部服务器错误

时间:2011-01-11 10:47:17

标签: php apache modx

我在使用eForm代码片时遇到了一些问题。每次提交表单时我都会收到内部服务器错误500.有趣的是,报表电子邮件发送正常,在发送表单后无法访问“谢谢”页面。这是错误日志:

[Tue Jan 11 10:23:07 2011] [error] [client 80.175.159.225] malformed header from script. Bad header=/home/sites/annuitiesadvice.co: index.php, referer: http://www.annuitiesadvice.co.uk/

这是我的表格块:

<form method="post" action="[~[*id*]~]" name="contactform" onSubmit="javascript:populateHiddenFields(this);" id="rc_form">

(我还尝试将表单操作设置为包含表单块的静态页面,例如about-us.html)。

以下是代码段呼叫:

[!eForm?
&formid=`rc_form`
&to=`myemail@blabla.com, myemail2@blabla.com, myemail3@blabla.com`
&subject=`Quick Annuity Quote Submitted`
&tpl=`rc_form`
&report=`rc_form_report`
&gotoid=`55`
&eFormOnBeforeFormMerge=`ref`
&eFormOnBeforeMailSent=`form_user_ok`
!]

MODx 1.02 的Apache2

知道可能导致这种情况的原因吗?

1 个答案:

答案 0 :(得分:0)

您的eForm调用会触发事件eFormOnBeforeFormMerge和eFormOnBeforeMailSent,并且这些事件分别调用函数ref和form_user_ok(作为eForm事件处理程序的一种)。我假设你需要调用这些函数来进行一些自定义处理(你没有指定)。如果不是省略eFormOnBeforeFormMerge和eFormOnBeforeMailSent参数并直接消除服务器错误。

如果这些事件需要自定义处理:请仔细跟踪这些调用,因为它们可能是您问题的根源。这些功能实际上是存在,并且在您的电子表格调用之前包含吗? php格式正确吗?

请注意,通常在某些描述性文本中出现php错误的情况下,eForm事件处理程序总是会导致服务器错误500.所以请确保检查语法错误并且可能< strong>失败包含以及任何其他导致php错误的原因。

提前提供2个功能,以便可以将它们作为eForm事件处理程序调用。您可以定义一个包含两者的代码段:

// snippet name: myEformFunctions

function ref()
{
    // do your thing here
    return; // important, never return false can trigger server error
}

function form_user_ok()
{
    // do your thing here
    return; // important, never return false can trigger server error
}

然后之前你的eForm调用添加:

[!myEformFunctions!]