我在使用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
知道可能导致这种情况的原因吗?
答案 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!]