2011-01-11 50 views
0

我遇到了幾個eForm代碼片段的問題。每次提交表單時,我都會收到內部服務器錯誤500.有趣的是,報告電子郵件發送得很好,在發送表單後無法訪問「謝謝」頁面。以下是錯誤日誌:MODx eForm內部服務器錯誤

[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"> 

(我也試過只設置表單動作爲一個靜態頁面,其中包含的形式塊,如約-us.html)。

這裏的片斷電話:

[!eForm? 
&formid=`rc_form` 
&to=`[email protected], [email protected], [email protected]` 
&subject=`Quick Annuity Quote Submitted` 
&tpl=`rc_form` 
&report=`rc_form_report` 
&gotoid=`55` 
&eFormOnBeforeFormMerge=`ref` 
&eFormOnBeforeMailSent=`form_user_ok` 
!] 

鏌鋣1.02 的Apache2

任何想法可能是什麼原因?

回答

0

您的eForm調用觸發事件eFormOnBeforeFormMerge和eFormOnBeforeMailSent,並且這些事件分別調用函數ref和form_user_ok(作爲eForm事件處理程序的種類)。我假設你需要調用這些函數來進行一些自定義處理(你沒有指定)。如果不是隻是省略eFormOnBeforeFormMerge和eFormOnBeforeMailSent參數並直接消除服務器錯誤。

如果這些事件需要自定義處理:請仔細追蹤這些呼叫,因爲它們很可能是問題的根源。這些功能實際上是是否存在並且它們是包含在您的eForm調用之前的php是否形成了

平時注意而正常情況下,你會得到一個PHP的錯誤與一些描述性文字,電子表格的事件處理程序始終最終導致服務器錯誤500.所以一定要檢查語法錯誤,並可能失敗包括和任何其他導致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 
} 

然後之前,你的電子表格添加調用:

[!myEformFunctions!]